Home | History | Annotate | Download | only in facet.num.put.members
      1 //===----------------------------------------------------------------------===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is dual licensed under the MIT and the University of Illinois Open
      6 // Source Licenses. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 
     10 // <locale>
     11 
     12 // class num_put<charT, OutputIterator>
     13 
     14 // iter_type put(iter_type s, ios_base& iob, char_type fill, double v) const;
     15 
     16 // TODO(EricWF): This test takes 40+ minutes to build with Clang 3.8 under ASAN or MSAN.
     17 // UNSUPPORTED: asan, msan
     18 
     19 #include <locale>
     20 #include <ios>
     21 #include <cassert>
     22 #include <streambuf>
     23 #include <cmath>
     24 #include "test_iterators.h"
     25 
     26 typedef std::num_put<char, output_iterator<char*> > F;
     27 
     28 class my_facet
     29     : public F
     30 {
     31 public:
     32     explicit my_facet(std::size_t refs = 0)
     33         : F(refs) {}
     34 };
     35 
     36 class my_numpunct
     37     : public std::numpunct<char>
     38 {
     39 public:
     40     my_numpunct() : std::numpunct<char>() {}
     41 
     42 protected:
     43     virtual char_type do_decimal_point() const {return ';';}
     44     virtual char_type do_thousands_sep() const {return '_';}
     45     virtual std::string do_grouping() const {return std::string("\1\2\3");}
     46 };
     47 
     48 void test1()
     49 {
     50     char str[200];
     51     output_iterator<char*> iter;
     52     std::locale lc = std::locale::classic();
     53     std::locale lg(lc, new my_numpunct);
     54     const my_facet f(1);
     55     {
     56         double v = +0.;
     57         std::ios ios(0);
     58         // %g
     59         {
     60             ios.precision(0);
     61             {
     62                 nouppercase(ios);
     63                 {
     64                     noshowpos(ios);
     65                     {
     66                         noshowpoint(ios);
     67                         {
     68                             ios.imbue(lc);
     69                             {
     70                                 ios.width(0);
     71                                 {
     72                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
     73                                     std::string ex(str, iter.base());
     74                                     assert(ex == "0");
     75                                     assert(ios.width() == 0);
     76                                 }
     77                                 ios.width(25);
     78                                 left(ios);
     79                                 {
     80                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
     81                                     std::string ex(str, iter.base());
     82                                     assert(ex == "0************************");
     83                                     assert(ios.width() == 0);
     84                                 }
     85                                 ios.width(25);
     86                                 right(ios);
     87                                 {
     88                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
     89                                     std::string ex(str, iter.base());
     90                                     assert(ex == "************************0");
     91                                     assert(ios.width() == 0);
     92                                 }
     93                                 ios.width(25);
     94                                 internal(ios);
     95                                 {
     96                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
     97                                     std::string ex(str, iter.base());
     98                                     assert(ex == "************************0");
     99                                     assert(ios.width() == 0);
    100                                 }
    101                             }
    102                             ios.imbue(lg);
    103                             {
    104                                 ios.width(0);
    105                                 {
    106                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    107                                     std::string ex(str, iter.base());
    108                                     assert(ex == "0");
    109                                     assert(ios.width() == 0);
    110                                 }
    111                                 ios.width(25);
    112                                 left(ios);
    113                                 {
    114                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    115                                     std::string ex(str, iter.base());
    116                                     assert(ex == "0************************");
    117                                     assert(ios.width() == 0);
    118                                 }
    119                                 ios.width(25);
    120                                 right(ios);
    121                                 {
    122                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    123                                     std::string ex(str, iter.base());
    124                                     assert(ex == "************************0");
    125                                     assert(ios.width() == 0);
    126                                 }
    127                                 ios.width(25);
    128                                 internal(ios);
    129                                 {
    130                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    131                                     std::string ex(str, iter.base());
    132                                     assert(ex == "************************0");
    133                                     assert(ios.width() == 0);
    134                                 }
    135                             }
    136                         }
    137                         showpoint(ios);
    138                         {
    139                             ios.imbue(lc);
    140                             {
    141                                 ios.width(0);
    142                                 {
    143                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    144                                     std::string ex(str, iter.base());
    145                                     assert(ex == "0.");
    146                                     assert(ios.width() == 0);
    147                                 }
    148                                 ios.width(25);
    149                                 left(ios);
    150                                 {
    151                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    152                                     std::string ex(str, iter.base());
    153                                     assert(ex == "0.***********************");
    154                                     assert(ios.width() == 0);
    155                                 }
    156                                 ios.width(25);
    157                                 right(ios);
    158                                 {
    159                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    160                                     std::string ex(str, iter.base());
    161                                     assert(ex == "***********************0.");
    162                                     assert(ios.width() == 0);
    163                                 }
    164                                 ios.width(25);
    165                                 internal(ios);
    166                                 {
    167                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    168                                     std::string ex(str, iter.base());
    169                                     assert(ex == "***********************0.");
    170                                     assert(ios.width() == 0);
    171                                 }
    172                             }
    173                             ios.imbue(lg);
    174                             {
    175                                 ios.width(0);
    176                                 {
    177                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    178                                     std::string ex(str, iter.base());
    179                                     assert(ex == "0;");
    180                                     assert(ios.width() == 0);
    181                                 }
    182                                 ios.width(25);
    183                                 left(ios);
    184                                 {
    185                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    186                                     std::string ex(str, iter.base());
    187                                     assert(ex == "0;***********************");
    188                                     assert(ios.width() == 0);
    189                                 }
    190                                 ios.width(25);
    191                                 right(ios);
    192                                 {
    193                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    194                                     std::string ex(str, iter.base());
    195                                     assert(ex == "***********************0;");
    196                                     assert(ios.width() == 0);
    197                                 }
    198                                 ios.width(25);
    199                                 internal(ios);
    200                                 {
    201                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    202                                     std::string ex(str, iter.base());
    203                                     assert(ex == "***********************0;");
    204                                     assert(ios.width() == 0);
    205                                 }
    206                             }
    207                         }
    208                     }
    209                     showpos(ios);
    210                     {
    211                         noshowpoint(ios);
    212                         {
    213                             ios.imbue(lc);
    214                             {
    215                                 ios.width(0);
    216                                 {
    217                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    218                                     std::string ex(str, iter.base());
    219                                     assert(ex == "+0");
    220                                     assert(ios.width() == 0);
    221                                 }
    222                                 ios.width(25);
    223                                 left(ios);
    224                                 {
    225                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    226                                     std::string ex(str, iter.base());
    227                                     assert(ex == "+0***********************");
    228                                     assert(ios.width() == 0);
    229                                 }
    230                                 ios.width(25);
    231                                 right(ios);
    232                                 {
    233                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    234                                     std::string ex(str, iter.base());
    235                                     assert(ex == "***********************+0");
    236                                     assert(ios.width() == 0);
    237                                 }
    238                                 ios.width(25);
    239                                 internal(ios);
    240                                 {
    241                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    242                                     std::string ex(str, iter.base());
    243                                     assert(ex == "+***********************0");
    244                                     assert(ios.width() == 0);
    245                                 }
    246                             }
    247                             ios.imbue(lg);
    248                             {
    249                                 ios.width(0);
    250                                 {
    251                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    252                                     std::string ex(str, iter.base());
    253                                     assert(ex == "+0");
    254                                     assert(ios.width() == 0);
    255                                 }
    256                                 ios.width(25);
    257                                 left(ios);
    258                                 {
    259                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    260                                     std::string ex(str, iter.base());
    261                                     assert(ex == "+0***********************");
    262                                     assert(ios.width() == 0);
    263                                 }
    264                                 ios.width(25);
    265                                 right(ios);
    266                                 {
    267                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    268                                     std::string ex(str, iter.base());
    269                                     assert(ex == "***********************+0");
    270                                     assert(ios.width() == 0);
    271                                 }
    272                                 ios.width(25);
    273                                 internal(ios);
    274                                 {
    275                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    276                                     std::string ex(str, iter.base());
    277                                     assert(ex == "+***********************0");
    278                                     assert(ios.width() == 0);
    279                                 }
    280                             }
    281                         }
    282                         showpoint(ios);
    283                         {
    284                             ios.imbue(lc);
    285                             {
    286                                 ios.width(0);
    287                                 {
    288                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    289                                     std::string ex(str, iter.base());
    290                                     assert(ex == "+0.");
    291                                     assert(ios.width() == 0);
    292                                 }
    293                                 ios.width(25);
    294                                 left(ios);
    295                                 {
    296                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    297                                     std::string ex(str, iter.base());
    298                                     assert(ex == "+0.**********************");
    299                                     assert(ios.width() == 0);
    300                                 }
    301                                 ios.width(25);
    302                                 right(ios);
    303                                 {
    304                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    305                                     std::string ex(str, iter.base());
    306                                     assert(ex == "**********************+0.");
    307                                     assert(ios.width() == 0);
    308                                 }
    309                                 ios.width(25);
    310                                 internal(ios);
    311                                 {
    312                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    313                                     std::string ex(str, iter.base());
    314                                     assert(ex == "+**********************0.");
    315                                     assert(ios.width() == 0);
    316                                 }
    317                             }
    318                             ios.imbue(lg);
    319                             {
    320                                 ios.width(0);
    321                                 {
    322                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    323                                     std::string ex(str, iter.base());
    324                                     assert(ex == "+0;");
    325                                     assert(ios.width() == 0);
    326                                 }
    327                                 ios.width(25);
    328                                 left(ios);
    329                                 {
    330                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    331                                     std::string ex(str, iter.base());
    332                                     assert(ex == "+0;**********************");
    333                                     assert(ios.width() == 0);
    334                                 }
    335                                 ios.width(25);
    336                                 right(ios);
    337                                 {
    338                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    339                                     std::string ex(str, iter.base());
    340                                     assert(ex == "**********************+0;");
    341                                     assert(ios.width() == 0);
    342                                 }
    343                                 ios.width(25);
    344                                 internal(ios);
    345                                 {
    346                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    347                                     std::string ex(str, iter.base());
    348                                     assert(ex == "+**********************0;");
    349                                     assert(ios.width() == 0);
    350                                 }
    351                             }
    352                         }
    353                     }
    354                 }
    355                 uppercase(ios);
    356                 {
    357                     noshowpos(ios);
    358                     {
    359                         noshowpoint(ios);
    360                         {
    361                             ios.imbue(lc);
    362                             {
    363                                 ios.width(0);
    364                                 {
    365                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    366                                     std::string ex(str, iter.base());
    367                                     assert(ex == "0");
    368                                     assert(ios.width() == 0);
    369                                 }
    370                                 ios.width(25);
    371                                 left(ios);
    372                                 {
    373                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    374                                     std::string ex(str, iter.base());
    375                                     assert(ex == "0************************");
    376                                     assert(ios.width() == 0);
    377                                 }
    378                                 ios.width(25);
    379                                 right(ios);
    380                                 {
    381                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    382                                     std::string ex(str, iter.base());
    383                                     assert(ex == "************************0");
    384                                     assert(ios.width() == 0);
    385                                 }
    386                                 ios.width(25);
    387                                 internal(ios);
    388                                 {
    389                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    390                                     std::string ex(str, iter.base());
    391                                     assert(ex == "************************0");
    392                                     assert(ios.width() == 0);
    393                                 }
    394                             }
    395                             ios.imbue(lg);
    396                             {
    397                                 ios.width(0);
    398                                 {
    399                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    400                                     std::string ex(str, iter.base());
    401                                     assert(ex == "0");
    402                                     assert(ios.width() == 0);
    403                                 }
    404                                 ios.width(25);
    405                                 left(ios);
    406                                 {
    407                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    408                                     std::string ex(str, iter.base());
    409                                     assert(ex == "0************************");
    410                                     assert(ios.width() == 0);
    411                                 }
    412                                 ios.width(25);
    413                                 right(ios);
    414                                 {
    415                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    416                                     std::string ex(str, iter.base());
    417                                     assert(ex == "************************0");
    418                                     assert(ios.width() == 0);
    419                                 }
    420                                 ios.width(25);
    421                                 internal(ios);
    422                                 {
    423                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    424                                     std::string ex(str, iter.base());
    425                                     assert(ex == "************************0");
    426                                     assert(ios.width() == 0);
    427                                 }
    428                             }
    429                         }
    430                         showpoint(ios);
    431                         {
    432                             ios.imbue(lc);
    433                             {
    434                                 ios.width(0);
    435                                 {
    436                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    437                                     std::string ex(str, iter.base());
    438                                     assert(ex == "0.");
    439                                     assert(ios.width() == 0);
    440                                 }
    441                                 ios.width(25);
    442                                 left(ios);
    443                                 {
    444                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    445                                     std::string ex(str, iter.base());
    446                                     assert(ex == "0.***********************");
    447                                     assert(ios.width() == 0);
    448                                 }
    449                                 ios.width(25);
    450                                 right(ios);
    451                                 {
    452                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    453                                     std::string ex(str, iter.base());
    454                                     assert(ex == "***********************0.");
    455                                     assert(ios.width() == 0);
    456                                 }
    457                                 ios.width(25);
    458                                 internal(ios);
    459                                 {
    460                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    461                                     std::string ex(str, iter.base());
    462                                     assert(ex == "***********************0.");
    463                                     assert(ios.width() == 0);
    464                                 }
    465                             }
    466                             ios.imbue(lg);
    467                             {
    468                                 ios.width(0);
    469                                 {
    470                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    471                                     std::string ex(str, iter.base());
    472                                     assert(ex == "0;");
    473                                     assert(ios.width() == 0);
    474                                 }
    475                                 ios.width(25);
    476                                 left(ios);
    477                                 {
    478                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    479                                     std::string ex(str, iter.base());
    480                                     assert(ex == "0;***********************");
    481                                     assert(ios.width() == 0);
    482                                 }
    483                                 ios.width(25);
    484                                 right(ios);
    485                                 {
    486                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    487                                     std::string ex(str, iter.base());
    488                                     assert(ex == "***********************0;");
    489                                     assert(ios.width() == 0);
    490                                 }
    491                                 ios.width(25);
    492                                 internal(ios);
    493                                 {
    494                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    495                                     std::string ex(str, iter.base());
    496                                     assert(ex == "***********************0;");
    497                                     assert(ios.width() == 0);
    498                                 }
    499                             }
    500                         }
    501                     }
    502                     showpos(ios);
    503                     {
    504                         noshowpoint(ios);
    505                         {
    506                             ios.imbue(lc);
    507                             {
    508                                 ios.width(0);
    509                                 {
    510                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    511                                     std::string ex(str, iter.base());
    512                                     assert(ex == "+0");
    513                                     assert(ios.width() == 0);
    514                                 }
    515                                 ios.width(25);
    516                                 left(ios);
    517                                 {
    518                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    519                                     std::string ex(str, iter.base());
    520                                     assert(ex == "+0***********************");
    521                                     assert(ios.width() == 0);
    522                                 }
    523                                 ios.width(25);
    524                                 right(ios);
    525                                 {
    526                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    527                                     std::string ex(str, iter.base());
    528                                     assert(ex == "***********************+0");
    529                                     assert(ios.width() == 0);
    530                                 }
    531                                 ios.width(25);
    532                                 internal(ios);
    533                                 {
    534                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    535                                     std::string ex(str, iter.base());
    536                                     assert(ex == "+***********************0");
    537                                     assert(ios.width() == 0);
    538                                 }
    539                             }
    540                             ios.imbue(lg);
    541                             {
    542                                 ios.width(0);
    543                                 {
    544                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    545                                     std::string ex(str, iter.base());
    546                                     assert(ex == "+0");
    547                                     assert(ios.width() == 0);
    548                                 }
    549                                 ios.width(25);
    550                                 left(ios);
    551                                 {
    552                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    553                                     std::string ex(str, iter.base());
    554                                     assert(ex == "+0***********************");
    555                                     assert(ios.width() == 0);
    556                                 }
    557                                 ios.width(25);
    558                                 right(ios);
    559                                 {
    560                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    561                                     std::string ex(str, iter.base());
    562                                     assert(ex == "***********************+0");
    563                                     assert(ios.width() == 0);
    564                                 }
    565                                 ios.width(25);
    566                                 internal(ios);
    567                                 {
    568                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    569                                     std::string ex(str, iter.base());
    570                                     assert(ex == "+***********************0");
    571                                     assert(ios.width() == 0);
    572                                 }
    573                             }
    574                         }
    575                         showpoint(ios);
    576                         {
    577                             ios.imbue(lc);
    578                             {
    579                                 ios.width(0);
    580                                 {
    581                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    582                                     std::string ex(str, iter.base());
    583                                     assert(ex == "+0.");
    584                                     assert(ios.width() == 0);
    585                                 }
    586                                 ios.width(25);
    587                                 left(ios);
    588                                 {
    589                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    590                                     std::string ex(str, iter.base());
    591                                     assert(ex == "+0.**********************");
    592                                     assert(ios.width() == 0);
    593                                 }
    594                                 ios.width(25);
    595                                 right(ios);
    596                                 {
    597                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    598                                     std::string ex(str, iter.base());
    599                                     assert(ex == "**********************+0.");
    600                                     assert(ios.width() == 0);
    601                                 }
    602                                 ios.width(25);
    603                                 internal(ios);
    604                                 {
    605                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    606                                     std::string ex(str, iter.base());
    607                                     assert(ex == "+**********************0.");
    608                                     assert(ios.width() == 0);
    609                                 }
    610                             }
    611                             ios.imbue(lg);
    612                             {
    613                                 ios.width(0);
    614                                 {
    615                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    616                                     std::string ex(str, iter.base());
    617                                     assert(ex == "+0;");
    618                                     assert(ios.width() == 0);
    619                                 }
    620                                 ios.width(25);
    621                                 left(ios);
    622                                 {
    623                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    624                                     std::string ex(str, iter.base());
    625                                     assert(ex == "+0;**********************");
    626                                     assert(ios.width() == 0);
    627                                 }
    628                                 ios.width(25);
    629                                 right(ios);
    630                                 {
    631                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    632                                     std::string ex(str, iter.base());
    633                                     assert(ex == "**********************+0;");
    634                                     assert(ios.width() == 0);
    635                                 }
    636                                 ios.width(25);
    637                                 internal(ios);
    638                                 {
    639                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    640                                     std::string ex(str, iter.base());
    641                                     assert(ex == "+**********************0;");
    642                                     assert(ios.width() == 0);
    643                                 }
    644                             }
    645                         }
    646                     }
    647                 }
    648             }
    649             ios.precision(1);
    650             {
    651                 nouppercase(ios);
    652                 {
    653                     noshowpos(ios);
    654                     {
    655                         noshowpoint(ios);
    656                         {
    657                             ios.imbue(lc);
    658                             {
    659                                 ios.width(0);
    660                                 {
    661                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    662                                     std::string ex(str, iter.base());
    663                                     assert(ex == "0");
    664                                     assert(ios.width() == 0);
    665                                 }
    666                                 ios.width(25);
    667                                 left(ios);
    668                                 {
    669                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    670                                     std::string ex(str, iter.base());
    671                                     assert(ex == "0************************");
    672                                     assert(ios.width() == 0);
    673                                 }
    674                                 ios.width(25);
    675                                 right(ios);
    676                                 {
    677                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    678                                     std::string ex(str, iter.base());
    679                                     assert(ex == "************************0");
    680                                     assert(ios.width() == 0);
    681                                 }
    682                                 ios.width(25);
    683                                 internal(ios);
    684                                 {
    685                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    686                                     std::string ex(str, iter.base());
    687                                     assert(ex == "************************0");
    688                                     assert(ios.width() == 0);
    689                                 }
    690                             }
    691                             ios.imbue(lg);
    692                             {
    693                                 ios.width(0);
    694                                 {
    695                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    696                                     std::string ex(str, iter.base());
    697                                     assert(ex == "0");
    698                                     assert(ios.width() == 0);
    699                                 }
    700                                 ios.width(25);
    701                                 left(ios);
    702                                 {
    703                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    704                                     std::string ex(str, iter.base());
    705                                     assert(ex == "0************************");
    706                                     assert(ios.width() == 0);
    707                                 }
    708                                 ios.width(25);
    709                                 right(ios);
    710                                 {
    711                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    712                                     std::string ex(str, iter.base());
    713                                     assert(ex == "************************0");
    714                                     assert(ios.width() == 0);
    715                                 }
    716                                 ios.width(25);
    717                                 internal(ios);
    718                                 {
    719                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    720                                     std::string ex(str, iter.base());
    721                                     assert(ex == "************************0");
    722                                     assert(ios.width() == 0);
    723                                 }
    724                             }
    725                         }
    726                         showpoint(ios);
    727                         {
    728                             ios.imbue(lc);
    729                             {
    730                                 ios.width(0);
    731                                 {
    732                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    733                                     std::string ex(str, iter.base());
    734                                     assert(ex == "0.");
    735                                     assert(ios.width() == 0);
    736                                 }
    737                                 ios.width(25);
    738                                 left(ios);
    739                                 {
    740                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    741                                     std::string ex(str, iter.base());
    742                                     assert(ex == "0.***********************");
    743                                     assert(ios.width() == 0);
    744                                 }
    745                                 ios.width(25);
    746                                 right(ios);
    747                                 {
    748                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    749                                     std::string ex(str, iter.base());
    750                                     assert(ex == "***********************0.");
    751                                     assert(ios.width() == 0);
    752                                 }
    753                                 ios.width(25);
    754                                 internal(ios);
    755                                 {
    756                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    757                                     std::string ex(str, iter.base());
    758                                     assert(ex == "***********************0.");
    759                                     assert(ios.width() == 0);
    760                                 }
    761                             }
    762                             ios.imbue(lg);
    763                             {
    764                                 ios.width(0);
    765                                 {
    766                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    767                                     std::string ex(str, iter.base());
    768                                     assert(ex == "0;");
    769                                     assert(ios.width() == 0);
    770                                 }
    771                                 ios.width(25);
    772                                 left(ios);
    773                                 {
    774                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    775                                     std::string ex(str, iter.base());
    776                                     assert(ex == "0;***********************");
    777                                     assert(ios.width() == 0);
    778                                 }
    779                                 ios.width(25);
    780                                 right(ios);
    781                                 {
    782                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    783                                     std::string ex(str, iter.base());
    784                                     assert(ex == "***********************0;");
    785                                     assert(ios.width() == 0);
    786                                 }
    787                                 ios.width(25);
    788                                 internal(ios);
    789                                 {
    790                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    791                                     std::string ex(str, iter.base());
    792                                     assert(ex == "***********************0;");
    793                                     assert(ios.width() == 0);
    794                                 }
    795                             }
    796                         }
    797                     }
    798                     showpos(ios);
    799                     {
    800                         noshowpoint(ios);
    801                         {
    802                             ios.imbue(lc);
    803                             {
    804                                 ios.width(0);
    805                                 {
    806                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    807                                     std::string ex(str, iter.base());
    808                                     assert(ex == "+0");
    809                                     assert(ios.width() == 0);
    810                                 }
    811                                 ios.width(25);
    812                                 left(ios);
    813                                 {
    814                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    815                                     std::string ex(str, iter.base());
    816                                     assert(ex == "+0***********************");
    817                                     assert(ios.width() == 0);
    818                                 }
    819                                 ios.width(25);
    820                                 right(ios);
    821                                 {
    822                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    823                                     std::string ex(str, iter.base());
    824                                     assert(ex == "***********************+0");
    825                                     assert(ios.width() == 0);
    826                                 }
    827                                 ios.width(25);
    828                                 internal(ios);
    829                                 {
    830                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    831                                     std::string ex(str, iter.base());
    832                                     assert(ex == "+***********************0");
    833                                     assert(ios.width() == 0);
    834                                 }
    835                             }
    836                             ios.imbue(lg);
    837                             {
    838                                 ios.width(0);
    839                                 {
    840                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    841                                     std::string ex(str, iter.base());
    842                                     assert(ex == "+0");
    843                                     assert(ios.width() == 0);
    844                                 }
    845                                 ios.width(25);
    846                                 left(ios);
    847                                 {
    848                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    849                                     std::string ex(str, iter.base());
    850                                     assert(ex == "+0***********************");
    851                                     assert(ios.width() == 0);
    852                                 }
    853                                 ios.width(25);
    854                                 right(ios);
    855                                 {
    856                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    857                                     std::string ex(str, iter.base());
    858                                     assert(ex == "***********************+0");
    859                                     assert(ios.width() == 0);
    860                                 }
    861                                 ios.width(25);
    862                                 internal(ios);
    863                                 {
    864                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    865                                     std::string ex(str, iter.base());
    866                                     assert(ex == "+***********************0");
    867                                     assert(ios.width() == 0);
    868                                 }
    869                             }
    870                         }
    871                         showpoint(ios);
    872                         {
    873                             ios.imbue(lc);
    874                             {
    875                                 ios.width(0);
    876                                 {
    877                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    878                                     std::string ex(str, iter.base());
    879                                     assert(ex == "+0.");
    880                                     assert(ios.width() == 0);
    881                                 }
    882                                 ios.width(25);
    883                                 left(ios);
    884                                 {
    885                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    886                                     std::string ex(str, iter.base());
    887                                     assert(ex == "+0.**********************");
    888                                     assert(ios.width() == 0);
    889                                 }
    890                                 ios.width(25);
    891                                 right(ios);
    892                                 {
    893                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    894                                     std::string ex(str, iter.base());
    895                                     assert(ex == "**********************+0.");
    896                                     assert(ios.width() == 0);
    897                                 }
    898                                 ios.width(25);
    899                                 internal(ios);
    900                                 {
    901                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    902                                     std::string ex(str, iter.base());
    903                                     assert(ex == "+**********************0.");
    904                                     assert(ios.width() == 0);
    905                                 }
    906                             }
    907                             ios.imbue(lg);
    908                             {
    909                                 ios.width(0);
    910                                 {
    911                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    912                                     std::string ex(str, iter.base());
    913                                     assert(ex == "+0;");
    914                                     assert(ios.width() == 0);
    915                                 }
    916                                 ios.width(25);
    917                                 left(ios);
    918                                 {
    919                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    920                                     std::string ex(str, iter.base());
    921                                     assert(ex == "+0;**********************");
    922                                     assert(ios.width() == 0);
    923                                 }
    924                                 ios.width(25);
    925                                 right(ios);
    926                                 {
    927                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    928                                     std::string ex(str, iter.base());
    929                                     assert(ex == "**********************+0;");
    930                                     assert(ios.width() == 0);
    931                                 }
    932                                 ios.width(25);
    933                                 internal(ios);
    934                                 {
    935                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    936                                     std::string ex(str, iter.base());
    937                                     assert(ex == "+**********************0;");
    938                                     assert(ios.width() == 0);
    939                                 }
    940                             }
    941                         }
    942                     }
    943                 }
    944                 uppercase(ios);
    945                 {
    946                     noshowpos(ios);
    947                     {
    948                         noshowpoint(ios);
    949                         {
    950                             ios.imbue(lc);
    951                             {
    952                                 ios.width(0);
    953                                 {
    954                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    955                                     std::string ex(str, iter.base());
    956                                     assert(ex == "0");
    957                                     assert(ios.width() == 0);
    958                                 }
    959                                 ios.width(25);
    960                                 left(ios);
    961                                 {
    962                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    963                                     std::string ex(str, iter.base());
    964                                     assert(ex == "0************************");
    965                                     assert(ios.width() == 0);
    966                                 }
    967                                 ios.width(25);
    968                                 right(ios);
    969                                 {
    970                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    971                                     std::string ex(str, iter.base());
    972                                     assert(ex == "************************0");
    973                                     assert(ios.width() == 0);
    974                                 }
    975                                 ios.width(25);
    976                                 internal(ios);
    977                                 {
    978                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    979                                     std::string ex(str, iter.base());
    980                                     assert(ex == "************************0");
    981                                     assert(ios.width() == 0);
    982                                 }
    983                             }
    984                             ios.imbue(lg);
    985                             {
    986                                 ios.width(0);
    987                                 {
    988                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    989                                     std::string ex(str, iter.base());
    990                                     assert(ex == "0");
    991                                     assert(ios.width() == 0);
    992                                 }
    993                                 ios.width(25);
    994                                 left(ios);
    995                                 {
    996                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
    997                                     std::string ex(str, iter.base());
    998                                     assert(ex == "0************************");
    999                                     assert(ios.width() == 0);
   1000                                 }
   1001                                 ios.width(25);
   1002                                 right(ios);
   1003                                 {
   1004                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1005                                     std::string ex(str, iter.base());
   1006                                     assert(ex == "************************0");
   1007                                     assert(ios.width() == 0);
   1008                                 }
   1009                                 ios.width(25);
   1010                                 internal(ios);
   1011                                 {
   1012                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1013                                     std::string ex(str, iter.base());
   1014                                     assert(ex == "************************0");
   1015                                     assert(ios.width() == 0);
   1016                                 }
   1017                             }
   1018                         }
   1019                         showpoint(ios);
   1020                         {
   1021                             ios.imbue(lc);
   1022                             {
   1023                                 ios.width(0);
   1024                                 {
   1025                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1026                                     std::string ex(str, iter.base());
   1027                                     assert(ex == "0.");
   1028                                     assert(ios.width() == 0);
   1029                                 }
   1030                                 ios.width(25);
   1031                                 left(ios);
   1032                                 {
   1033                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1034                                     std::string ex(str, iter.base());
   1035                                     assert(ex == "0.***********************");
   1036                                     assert(ios.width() == 0);
   1037                                 }
   1038                                 ios.width(25);
   1039                                 right(ios);
   1040                                 {
   1041                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1042                                     std::string ex(str, iter.base());
   1043                                     assert(ex == "***********************0.");
   1044                                     assert(ios.width() == 0);
   1045                                 }
   1046                                 ios.width(25);
   1047                                 internal(ios);
   1048                                 {
   1049                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1050                                     std::string ex(str, iter.base());
   1051                                     assert(ex == "***********************0.");
   1052                                     assert(ios.width() == 0);
   1053                                 }
   1054                             }
   1055                             ios.imbue(lg);
   1056                             {
   1057                                 ios.width(0);
   1058                                 {
   1059                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1060                                     std::string ex(str, iter.base());
   1061                                     assert(ex == "0;");
   1062                                     assert(ios.width() == 0);
   1063                                 }
   1064                                 ios.width(25);
   1065                                 left(ios);
   1066                                 {
   1067                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1068                                     std::string ex(str, iter.base());
   1069                                     assert(ex == "0;***********************");
   1070                                     assert(ios.width() == 0);
   1071                                 }
   1072                                 ios.width(25);
   1073                                 right(ios);
   1074                                 {
   1075                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1076                                     std::string ex(str, iter.base());
   1077                                     assert(ex == "***********************0;");
   1078                                     assert(ios.width() == 0);
   1079                                 }
   1080                                 ios.width(25);
   1081                                 internal(ios);
   1082                                 {
   1083                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1084                                     std::string ex(str, iter.base());
   1085                                     assert(ex == "***********************0;");
   1086                                     assert(ios.width() == 0);
   1087                                 }
   1088                             }
   1089                         }
   1090                     }
   1091                     showpos(ios);
   1092                     {
   1093                         noshowpoint(ios);
   1094                         {
   1095                             ios.imbue(lc);
   1096                             {
   1097                                 ios.width(0);
   1098                                 {
   1099                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1100                                     std::string ex(str, iter.base());
   1101                                     assert(ex == "+0");
   1102                                     assert(ios.width() == 0);
   1103                                 }
   1104                                 ios.width(25);
   1105                                 left(ios);
   1106                                 {
   1107                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1108                                     std::string ex(str, iter.base());
   1109                                     assert(ex == "+0***********************");
   1110                                     assert(ios.width() == 0);
   1111                                 }
   1112                                 ios.width(25);
   1113                                 right(ios);
   1114                                 {
   1115                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1116                                     std::string ex(str, iter.base());
   1117                                     assert(ex == "***********************+0");
   1118                                     assert(ios.width() == 0);
   1119                                 }
   1120                                 ios.width(25);
   1121                                 internal(ios);
   1122                                 {
   1123                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1124                                     std::string ex(str, iter.base());
   1125                                     assert(ex == "+***********************0");
   1126                                     assert(ios.width() == 0);
   1127                                 }
   1128                             }
   1129                             ios.imbue(lg);
   1130                             {
   1131                                 ios.width(0);
   1132                                 {
   1133                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1134                                     std::string ex(str, iter.base());
   1135                                     assert(ex == "+0");
   1136                                     assert(ios.width() == 0);
   1137                                 }
   1138                                 ios.width(25);
   1139                                 left(ios);
   1140                                 {
   1141                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1142                                     std::string ex(str, iter.base());
   1143                                     assert(ex == "+0***********************");
   1144                                     assert(ios.width() == 0);
   1145                                 }
   1146                                 ios.width(25);
   1147                                 right(ios);
   1148                                 {
   1149                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1150                                     std::string ex(str, iter.base());
   1151                                     assert(ex == "***********************+0");
   1152                                     assert(ios.width() == 0);
   1153                                 }
   1154                                 ios.width(25);
   1155                                 internal(ios);
   1156                                 {
   1157                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1158                                     std::string ex(str, iter.base());
   1159                                     assert(ex == "+***********************0");
   1160                                     assert(ios.width() == 0);
   1161                                 }
   1162                             }
   1163                         }
   1164                         showpoint(ios);
   1165                         {
   1166                             ios.imbue(lc);
   1167                             {
   1168                                 ios.width(0);
   1169                                 {
   1170                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1171                                     std::string ex(str, iter.base());
   1172                                     assert(ex == "+0.");
   1173                                     assert(ios.width() == 0);
   1174                                 }
   1175                                 ios.width(25);
   1176                                 left(ios);
   1177                                 {
   1178                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1179                                     std::string ex(str, iter.base());
   1180                                     assert(ex == "+0.**********************");
   1181                                     assert(ios.width() == 0);
   1182                                 }
   1183                                 ios.width(25);
   1184                                 right(ios);
   1185                                 {
   1186                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1187                                     std::string ex(str, iter.base());
   1188                                     assert(ex == "**********************+0.");
   1189                                     assert(ios.width() == 0);
   1190                                 }
   1191                                 ios.width(25);
   1192                                 internal(ios);
   1193                                 {
   1194                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1195                                     std::string ex(str, iter.base());
   1196                                     assert(ex == "+**********************0.");
   1197                                     assert(ios.width() == 0);
   1198                                 }
   1199                             }
   1200                             ios.imbue(lg);
   1201                             {
   1202                                 ios.width(0);
   1203                                 {
   1204                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1205                                     std::string ex(str, iter.base());
   1206                                     assert(ex == "+0;");
   1207                                     assert(ios.width() == 0);
   1208                                 }
   1209                                 ios.width(25);
   1210                                 left(ios);
   1211                                 {
   1212                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1213                                     std::string ex(str, iter.base());
   1214                                     assert(ex == "+0;**********************");
   1215                                     assert(ios.width() == 0);
   1216                                 }
   1217                                 ios.width(25);
   1218                                 right(ios);
   1219                                 {
   1220                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1221                                     std::string ex(str, iter.base());
   1222                                     assert(ex == "**********************+0;");
   1223                                     assert(ios.width() == 0);
   1224                                 }
   1225                                 ios.width(25);
   1226                                 internal(ios);
   1227                                 {
   1228                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1229                                     std::string ex(str, iter.base());
   1230                                     assert(ex == "+**********************0;");
   1231                                     assert(ios.width() == 0);
   1232                                 }
   1233                             }
   1234                         }
   1235                     }
   1236                 }
   1237             }
   1238             ios.precision(6);
   1239             {
   1240                 nouppercase(ios);
   1241                 {
   1242                     noshowpos(ios);
   1243                     {
   1244                         noshowpoint(ios);
   1245                         {
   1246                             ios.imbue(lc);
   1247                             {
   1248                                 ios.width(0);
   1249                                 {
   1250                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1251                                     std::string ex(str, iter.base());
   1252                                     assert(ex == "0");
   1253                                     assert(ios.width() == 0);
   1254                                 }
   1255                                 ios.width(25);
   1256                                 left(ios);
   1257                                 {
   1258                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1259                                     std::string ex(str, iter.base());
   1260                                     assert(ex == "0************************");
   1261                                     assert(ios.width() == 0);
   1262                                 }
   1263                                 ios.width(25);
   1264                                 right(ios);
   1265                                 {
   1266                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1267                                     std::string ex(str, iter.base());
   1268                                     assert(ex == "************************0");
   1269                                     assert(ios.width() == 0);
   1270                                 }
   1271                                 ios.width(25);
   1272                                 internal(ios);
   1273                                 {
   1274                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1275                                     std::string ex(str, iter.base());
   1276                                     assert(ex == "************************0");
   1277                                     assert(ios.width() == 0);
   1278                                 }
   1279                             }
   1280                             ios.imbue(lg);
   1281                             {
   1282                                 ios.width(0);
   1283                                 {
   1284                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1285                                     std::string ex(str, iter.base());
   1286                                     assert(ex == "0");
   1287                                     assert(ios.width() == 0);
   1288                                 }
   1289                                 ios.width(25);
   1290                                 left(ios);
   1291                                 {
   1292                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1293                                     std::string ex(str, iter.base());
   1294                                     assert(ex == "0************************");
   1295                                     assert(ios.width() == 0);
   1296                                 }
   1297                                 ios.width(25);
   1298                                 right(ios);
   1299                                 {
   1300                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1301                                     std::string ex(str, iter.base());
   1302                                     assert(ex == "************************0");
   1303                                     assert(ios.width() == 0);
   1304                                 }
   1305                                 ios.width(25);
   1306                                 internal(ios);
   1307                                 {
   1308                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1309                                     std::string ex(str, iter.base());
   1310                                     assert(ex == "************************0");
   1311                                     assert(ios.width() == 0);
   1312                                 }
   1313                             }
   1314                         }
   1315                         showpoint(ios);
   1316                         {
   1317                             ios.imbue(lc);
   1318                             {
   1319                                 ios.width(0);
   1320                                 {
   1321                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1322                                     std::string ex(str, iter.base());
   1323                                     assert(ex == "0.00000");
   1324                                     assert(ios.width() == 0);
   1325                                 }
   1326                                 ios.width(25);
   1327                                 left(ios);
   1328                                 {
   1329                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1330                                     std::string ex(str, iter.base());
   1331                                     assert(ex == "0.00000******************");
   1332                                     assert(ios.width() == 0);
   1333                                 }
   1334                                 ios.width(25);
   1335                                 right(ios);
   1336                                 {
   1337                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1338                                     std::string ex(str, iter.base());
   1339                                     assert(ex == "******************0.00000");
   1340                                     assert(ios.width() == 0);
   1341                                 }
   1342                                 ios.width(25);
   1343                                 internal(ios);
   1344                                 {
   1345                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1346                                     std::string ex(str, iter.base());
   1347                                     assert(ex == "******************0.00000");
   1348                                     assert(ios.width() == 0);
   1349                                 }
   1350                             }
   1351                             ios.imbue(lg);
   1352                             {
   1353                                 ios.width(0);
   1354                                 {
   1355                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1356                                     std::string ex(str, iter.base());
   1357                                     assert(ex == "0;00000");
   1358                                     assert(ios.width() == 0);
   1359                                 }
   1360                                 ios.width(25);
   1361                                 left(ios);
   1362                                 {
   1363                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1364                                     std::string ex(str, iter.base());
   1365                                     assert(ex == "0;00000******************");
   1366                                     assert(ios.width() == 0);
   1367                                 }
   1368                                 ios.width(25);
   1369                                 right(ios);
   1370                                 {
   1371                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1372                                     std::string ex(str, iter.base());
   1373                                     assert(ex == "******************0;00000");
   1374                                     assert(ios.width() == 0);
   1375                                 }
   1376                                 ios.width(25);
   1377                                 internal(ios);
   1378                                 {
   1379                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1380                                     std::string ex(str, iter.base());
   1381                                     assert(ex == "******************0;00000");
   1382                                     assert(ios.width() == 0);
   1383                                 }
   1384                             }
   1385                         }
   1386                     }
   1387                     showpos(ios);
   1388                     {
   1389                         noshowpoint(ios);
   1390                         {
   1391                             ios.imbue(lc);
   1392                             {
   1393                                 ios.width(0);
   1394                                 {
   1395                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1396                                     std::string ex(str, iter.base());
   1397                                     assert(ex == "+0");
   1398                                     assert(ios.width() == 0);
   1399                                 }
   1400                                 ios.width(25);
   1401                                 left(ios);
   1402                                 {
   1403                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1404                                     std::string ex(str, iter.base());
   1405                                     assert(ex == "+0***********************");
   1406                                     assert(ios.width() == 0);
   1407                                 }
   1408                                 ios.width(25);
   1409                                 right(ios);
   1410                                 {
   1411                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1412                                     std::string ex(str, iter.base());
   1413                                     assert(ex == "***********************+0");
   1414                                     assert(ios.width() == 0);
   1415                                 }
   1416                                 ios.width(25);
   1417                                 internal(ios);
   1418                                 {
   1419                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1420                                     std::string ex(str, iter.base());
   1421                                     assert(ex == "+***********************0");
   1422                                     assert(ios.width() == 0);
   1423                                 }
   1424                             }
   1425                             ios.imbue(lg);
   1426                             {
   1427                                 ios.width(0);
   1428                                 {
   1429                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1430                                     std::string ex(str, iter.base());
   1431                                     assert(ex == "+0");
   1432                                     assert(ios.width() == 0);
   1433                                 }
   1434                                 ios.width(25);
   1435                                 left(ios);
   1436                                 {
   1437                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1438                                     std::string ex(str, iter.base());
   1439                                     assert(ex == "+0***********************");
   1440                                     assert(ios.width() == 0);
   1441                                 }
   1442                                 ios.width(25);
   1443                                 right(ios);
   1444                                 {
   1445                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1446                                     std::string ex(str, iter.base());
   1447                                     assert(ex == "***********************+0");
   1448                                     assert(ios.width() == 0);
   1449                                 }
   1450                                 ios.width(25);
   1451                                 internal(ios);
   1452                                 {
   1453                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1454                                     std::string ex(str, iter.base());
   1455                                     assert(ex == "+***********************0");
   1456                                     assert(ios.width() == 0);
   1457                                 }
   1458                             }
   1459                         }
   1460                         showpoint(ios);
   1461                         {
   1462                             ios.imbue(lc);
   1463                             {
   1464                                 ios.width(0);
   1465                                 {
   1466                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1467                                     std::string ex(str, iter.base());
   1468                                     assert(ex == "+0.00000");
   1469                                     assert(ios.width() == 0);
   1470                                 }
   1471                                 ios.width(25);
   1472                                 left(ios);
   1473                                 {
   1474                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1475                                     std::string ex(str, iter.base());
   1476                                     assert(ex == "+0.00000*****************");
   1477                                     assert(ios.width() == 0);
   1478                                 }
   1479                                 ios.width(25);
   1480                                 right(ios);
   1481                                 {
   1482                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1483                                     std::string ex(str, iter.base());
   1484                                     assert(ex == "*****************+0.00000");
   1485                                     assert(ios.width() == 0);
   1486                                 }
   1487                                 ios.width(25);
   1488                                 internal(ios);
   1489                                 {
   1490                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1491                                     std::string ex(str, iter.base());
   1492                                     assert(ex == "+*****************0.00000");
   1493                                     assert(ios.width() == 0);
   1494                                 }
   1495                             }
   1496                             ios.imbue(lg);
   1497                             {
   1498                                 ios.width(0);
   1499                                 {
   1500                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1501                                     std::string ex(str, iter.base());
   1502                                     assert(ex == "+0;00000");
   1503                                     assert(ios.width() == 0);
   1504                                 }
   1505                                 ios.width(25);
   1506                                 left(ios);
   1507                                 {
   1508                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1509                                     std::string ex(str, iter.base());
   1510                                     assert(ex == "+0;00000*****************");
   1511                                     assert(ios.width() == 0);
   1512                                 }
   1513                                 ios.width(25);
   1514                                 right(ios);
   1515                                 {
   1516                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1517                                     std::string ex(str, iter.base());
   1518                                     assert(ex == "*****************+0;00000");
   1519                                     assert(ios.width() == 0);
   1520                                 }
   1521                                 ios.width(25);
   1522                                 internal(ios);
   1523                                 {
   1524                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1525                                     std::string ex(str, iter.base());
   1526                                     assert(ex == "+*****************0;00000");
   1527                                     assert(ios.width() == 0);
   1528                                 }
   1529                             }
   1530                         }
   1531                     }
   1532                 }
   1533                 uppercase(ios);
   1534                 {
   1535                     noshowpos(ios);
   1536                     {
   1537                         noshowpoint(ios);
   1538                         {
   1539                             ios.imbue(lc);
   1540                             {
   1541                                 ios.width(0);
   1542                                 {
   1543                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1544                                     std::string ex(str, iter.base());
   1545                                     assert(ex == "0");
   1546                                     assert(ios.width() == 0);
   1547                                 }
   1548                                 ios.width(25);
   1549                                 left(ios);
   1550                                 {
   1551                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1552                                     std::string ex(str, iter.base());
   1553                                     assert(ex == "0************************");
   1554                                     assert(ios.width() == 0);
   1555                                 }
   1556                                 ios.width(25);
   1557                                 right(ios);
   1558                                 {
   1559                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1560                                     std::string ex(str, iter.base());
   1561                                     assert(ex == "************************0");
   1562                                     assert(ios.width() == 0);
   1563                                 }
   1564                                 ios.width(25);
   1565                                 internal(ios);
   1566                                 {
   1567                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1568                                     std::string ex(str, iter.base());
   1569                                     assert(ex == "************************0");
   1570                                     assert(ios.width() == 0);
   1571                                 }
   1572                             }
   1573                             ios.imbue(lg);
   1574                             {
   1575                                 ios.width(0);
   1576                                 {
   1577                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1578                                     std::string ex(str, iter.base());
   1579                                     assert(ex == "0");
   1580                                     assert(ios.width() == 0);
   1581                                 }
   1582                                 ios.width(25);
   1583                                 left(ios);
   1584                                 {
   1585                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1586                                     std::string ex(str, iter.base());
   1587                                     assert(ex == "0************************");
   1588                                     assert(ios.width() == 0);
   1589                                 }
   1590                                 ios.width(25);
   1591                                 right(ios);
   1592                                 {
   1593                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1594                                     std::string ex(str, iter.base());
   1595                                     assert(ex == "************************0");
   1596                                     assert(ios.width() == 0);
   1597                                 }
   1598                                 ios.width(25);
   1599                                 internal(ios);
   1600                                 {
   1601                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1602                                     std::string ex(str, iter.base());
   1603                                     assert(ex == "************************0");
   1604                                     assert(ios.width() == 0);
   1605                                 }
   1606                             }
   1607                         }
   1608                         showpoint(ios);
   1609                         {
   1610                             ios.imbue(lc);
   1611                             {
   1612                                 ios.width(0);
   1613                                 {
   1614                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1615                                     std::string ex(str, iter.base());
   1616                                     assert(ex == "0.00000");
   1617                                     assert(ios.width() == 0);
   1618                                 }
   1619                                 ios.width(25);
   1620                                 left(ios);
   1621                                 {
   1622                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1623                                     std::string ex(str, iter.base());
   1624                                     assert(ex == "0.00000******************");
   1625                                     assert(ios.width() == 0);
   1626                                 }
   1627                                 ios.width(25);
   1628                                 right(ios);
   1629                                 {
   1630                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1631                                     std::string ex(str, iter.base());
   1632                                     assert(ex == "******************0.00000");
   1633                                     assert(ios.width() == 0);
   1634                                 }
   1635                                 ios.width(25);
   1636                                 internal(ios);
   1637                                 {
   1638                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1639                                     std::string ex(str, iter.base());
   1640                                     assert(ex == "******************0.00000");
   1641                                     assert(ios.width() == 0);
   1642                                 }
   1643                             }
   1644                             ios.imbue(lg);
   1645                             {
   1646                                 ios.width(0);
   1647                                 {
   1648                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1649                                     std::string ex(str, iter.base());
   1650                                     assert(ex == "0;00000");
   1651                                     assert(ios.width() == 0);
   1652                                 }
   1653                                 ios.width(25);
   1654                                 left(ios);
   1655                                 {
   1656                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1657                                     std::string ex(str, iter.base());
   1658                                     assert(ex == "0;00000******************");
   1659                                     assert(ios.width() == 0);
   1660                                 }
   1661                                 ios.width(25);
   1662                                 right(ios);
   1663                                 {
   1664                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1665                                     std::string ex(str, iter.base());
   1666                                     assert(ex == "******************0;00000");
   1667                                     assert(ios.width() == 0);
   1668                                 }
   1669                                 ios.width(25);
   1670                                 internal(ios);
   1671                                 {
   1672                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1673                                     std::string ex(str, iter.base());
   1674                                     assert(ex == "******************0;00000");
   1675                                     assert(ios.width() == 0);
   1676                                 }
   1677                             }
   1678                         }
   1679                     }
   1680                     showpos(ios);
   1681                     {
   1682                         noshowpoint(ios);
   1683                         {
   1684                             ios.imbue(lc);
   1685                             {
   1686                                 ios.width(0);
   1687                                 {
   1688                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1689                                     std::string ex(str, iter.base());
   1690                                     assert(ex == "+0");
   1691                                     assert(ios.width() == 0);
   1692                                 }
   1693                                 ios.width(25);
   1694                                 left(ios);
   1695                                 {
   1696                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1697                                     std::string ex(str, iter.base());
   1698                                     assert(ex == "+0***********************");
   1699                                     assert(ios.width() == 0);
   1700                                 }
   1701                                 ios.width(25);
   1702                                 right(ios);
   1703                                 {
   1704                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1705                                     std::string ex(str, iter.base());
   1706                                     assert(ex == "***********************+0");
   1707                                     assert(ios.width() == 0);
   1708                                 }
   1709                                 ios.width(25);
   1710                                 internal(ios);
   1711                                 {
   1712                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1713                                     std::string ex(str, iter.base());
   1714                                     assert(ex == "+***********************0");
   1715                                     assert(ios.width() == 0);
   1716                                 }
   1717                             }
   1718                             ios.imbue(lg);
   1719                             {
   1720                                 ios.width(0);
   1721                                 {
   1722                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1723                                     std::string ex(str, iter.base());
   1724                                     assert(ex == "+0");
   1725                                     assert(ios.width() == 0);
   1726                                 }
   1727                                 ios.width(25);
   1728                                 left(ios);
   1729                                 {
   1730                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1731                                     std::string ex(str, iter.base());
   1732                                     assert(ex == "+0***********************");
   1733                                     assert(ios.width() == 0);
   1734                                 }
   1735                                 ios.width(25);
   1736                                 right(ios);
   1737                                 {
   1738                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1739                                     std::string ex(str, iter.base());
   1740                                     assert(ex == "***********************+0");
   1741                                     assert(ios.width() == 0);
   1742                                 }
   1743                                 ios.width(25);
   1744                                 internal(ios);
   1745                                 {
   1746                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1747                                     std::string ex(str, iter.base());
   1748                                     assert(ex == "+***********************0");
   1749                                     assert(ios.width() == 0);
   1750                                 }
   1751                             }
   1752                         }
   1753                         showpoint(ios);
   1754                         {
   1755                             ios.imbue(lc);
   1756                             {
   1757                                 ios.width(0);
   1758                                 {
   1759                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1760                                     std::string ex(str, iter.base());
   1761                                     assert(ex == "+0.00000");
   1762                                     assert(ios.width() == 0);
   1763                                 }
   1764                                 ios.width(25);
   1765                                 left(ios);
   1766                                 {
   1767                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1768                                     std::string ex(str, iter.base());
   1769                                     assert(ex == "+0.00000*****************");
   1770                                     assert(ios.width() == 0);
   1771                                 }
   1772                                 ios.width(25);
   1773                                 right(ios);
   1774                                 {
   1775                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1776                                     std::string ex(str, iter.base());
   1777                                     assert(ex == "*****************+0.00000");
   1778                                     assert(ios.width() == 0);
   1779                                 }
   1780                                 ios.width(25);
   1781                                 internal(ios);
   1782                                 {
   1783                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1784                                     std::string ex(str, iter.base());
   1785                                     assert(ex == "+*****************0.00000");
   1786                                     assert(ios.width() == 0);
   1787                                 }
   1788                             }
   1789                             ios.imbue(lg);
   1790                             {
   1791                                 ios.width(0);
   1792                                 {
   1793                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1794                                     std::string ex(str, iter.base());
   1795                                     assert(ex == "+0;00000");
   1796                                     assert(ios.width() == 0);
   1797                                 }
   1798                                 ios.width(25);
   1799                                 left(ios);
   1800                                 {
   1801                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1802                                     std::string ex(str, iter.base());
   1803                                     assert(ex == "+0;00000*****************");
   1804                                     assert(ios.width() == 0);
   1805                                 }
   1806                                 ios.width(25);
   1807                                 right(ios);
   1808                                 {
   1809                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1810                                     std::string ex(str, iter.base());
   1811                                     assert(ex == "*****************+0;00000");
   1812                                     assert(ios.width() == 0);
   1813                                 }
   1814                                 ios.width(25);
   1815                                 internal(ios);
   1816                                 {
   1817                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1818                                     std::string ex(str, iter.base());
   1819                                     assert(ex == "+*****************0;00000");
   1820                                     assert(ios.width() == 0);
   1821                                 }
   1822                             }
   1823                         }
   1824                     }
   1825                 }
   1826             }
   1827             ios.precision(16);
   1828             {
   1829                 nouppercase(ios);
   1830                 {
   1831                     noshowpos(ios);
   1832                     {
   1833                         noshowpoint(ios);
   1834                         {
   1835                             ios.imbue(lc);
   1836                             {
   1837                                 ios.width(0);
   1838                                 {
   1839                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1840                                     std::string ex(str, iter.base());
   1841                                     assert(ex == "0");
   1842                                     assert(ios.width() == 0);
   1843                                 }
   1844                                 ios.width(25);
   1845                                 left(ios);
   1846                                 {
   1847                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1848                                     std::string ex(str, iter.base());
   1849                                     assert(ex == "0************************");
   1850                                     assert(ios.width() == 0);
   1851                                 }
   1852                                 ios.width(25);
   1853                                 right(ios);
   1854                                 {
   1855                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1856                                     std::string ex(str, iter.base());
   1857                                     assert(ex == "************************0");
   1858                                     assert(ios.width() == 0);
   1859                                 }
   1860                                 ios.width(25);
   1861                                 internal(ios);
   1862                                 {
   1863                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1864                                     std::string ex(str, iter.base());
   1865                                     assert(ex == "************************0");
   1866                                     assert(ios.width() == 0);
   1867                                 }
   1868                             }
   1869                             ios.imbue(lg);
   1870                             {
   1871                                 ios.width(0);
   1872                                 {
   1873                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1874                                     std::string ex(str, iter.base());
   1875                                     assert(ex == "0");
   1876                                     assert(ios.width() == 0);
   1877                                 }
   1878                                 ios.width(25);
   1879                                 left(ios);
   1880                                 {
   1881                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1882                                     std::string ex(str, iter.base());
   1883                                     assert(ex == "0************************");
   1884                                     assert(ios.width() == 0);
   1885                                 }
   1886                                 ios.width(25);
   1887                                 right(ios);
   1888                                 {
   1889                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1890                                     std::string ex(str, iter.base());
   1891                                     assert(ex == "************************0");
   1892                                     assert(ios.width() == 0);
   1893                                 }
   1894                                 ios.width(25);
   1895                                 internal(ios);
   1896                                 {
   1897                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1898                                     std::string ex(str, iter.base());
   1899                                     assert(ex == "************************0");
   1900                                     assert(ios.width() == 0);
   1901                                 }
   1902                             }
   1903                         }
   1904                         showpoint(ios);
   1905                         {
   1906                             ios.imbue(lc);
   1907                             {
   1908                                 ios.width(0);
   1909                                 {
   1910                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1911                                     std::string ex(str, iter.base());
   1912                                     assert(ex == "0.000000000000000");
   1913                                     assert(ios.width() == 0);
   1914                                 }
   1915                                 ios.width(25);
   1916                                 left(ios);
   1917                                 {
   1918                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1919                                     std::string ex(str, iter.base());
   1920                                     assert(ex == "0.000000000000000********");
   1921                                     assert(ios.width() == 0);
   1922                                 }
   1923                                 ios.width(25);
   1924                                 right(ios);
   1925                                 {
   1926                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1927                                     std::string ex(str, iter.base());
   1928                                     assert(ex == "********0.000000000000000");
   1929                                     assert(ios.width() == 0);
   1930                                 }
   1931                                 ios.width(25);
   1932                                 internal(ios);
   1933                                 {
   1934                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1935                                     std::string ex(str, iter.base());
   1936                                     assert(ex == "********0.000000000000000");
   1937                                     assert(ios.width() == 0);
   1938                                 }
   1939                             }
   1940                             ios.imbue(lg);
   1941                             {
   1942                                 ios.width(0);
   1943                                 {
   1944                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1945                                     std::string ex(str, iter.base());
   1946                                     assert(ex == "0;000000000000000");
   1947                                     assert(ios.width() == 0);
   1948                                 }
   1949                                 ios.width(25);
   1950                                 left(ios);
   1951                                 {
   1952                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1953                                     std::string ex(str, iter.base());
   1954                                     assert(ex == "0;000000000000000********");
   1955                                     assert(ios.width() == 0);
   1956                                 }
   1957                                 ios.width(25);
   1958                                 right(ios);
   1959                                 {
   1960                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1961                                     std::string ex(str, iter.base());
   1962                                     assert(ex == "********0;000000000000000");
   1963                                     assert(ios.width() == 0);
   1964                                 }
   1965                                 ios.width(25);
   1966                                 internal(ios);
   1967                                 {
   1968                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1969                                     std::string ex(str, iter.base());
   1970                                     assert(ex == "********0;000000000000000");
   1971                                     assert(ios.width() == 0);
   1972                                 }
   1973                             }
   1974                         }
   1975                     }
   1976                     showpos(ios);
   1977                     {
   1978                         noshowpoint(ios);
   1979                         {
   1980                             ios.imbue(lc);
   1981                             {
   1982                                 ios.width(0);
   1983                                 {
   1984                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1985                                     std::string ex(str, iter.base());
   1986                                     assert(ex == "+0");
   1987                                     assert(ios.width() == 0);
   1988                                 }
   1989                                 ios.width(25);
   1990                                 left(ios);
   1991                                 {
   1992                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   1993                                     std::string ex(str, iter.base());
   1994                                     assert(ex == "+0***********************");
   1995                                     assert(ios.width() == 0);
   1996                                 }
   1997                                 ios.width(25);
   1998                                 right(ios);
   1999                                 {
   2000                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2001                                     std::string ex(str, iter.base());
   2002                                     assert(ex == "***********************+0");
   2003                                     assert(ios.width() == 0);
   2004                                 }
   2005                                 ios.width(25);
   2006                                 internal(ios);
   2007                                 {
   2008                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2009                                     std::string ex(str, iter.base());
   2010                                     assert(ex == "+***********************0");
   2011                                     assert(ios.width() == 0);
   2012                                 }
   2013                             }
   2014                             ios.imbue(lg);
   2015                             {
   2016                                 ios.width(0);
   2017                                 {
   2018                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2019                                     std::string ex(str, iter.base());
   2020                                     assert(ex == "+0");
   2021                                     assert(ios.width() == 0);
   2022                                 }
   2023                                 ios.width(25);
   2024                                 left(ios);
   2025                                 {
   2026                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2027                                     std::string ex(str, iter.base());
   2028                                     assert(ex == "+0***********************");
   2029                                     assert(ios.width() == 0);
   2030                                 }
   2031                                 ios.width(25);
   2032                                 right(ios);
   2033                                 {
   2034                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2035                                     std::string ex(str, iter.base());
   2036                                     assert(ex == "***********************+0");
   2037                                     assert(ios.width() == 0);
   2038                                 }
   2039                                 ios.width(25);
   2040                                 internal(ios);
   2041                                 {
   2042                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2043                                     std::string ex(str, iter.base());
   2044                                     assert(ex == "+***********************0");
   2045                                     assert(ios.width() == 0);
   2046                                 }
   2047                             }
   2048                         }
   2049                         showpoint(ios);
   2050                         {
   2051                             ios.imbue(lc);
   2052                             {
   2053                                 ios.width(0);
   2054                                 {
   2055                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2056                                     std::string ex(str, iter.base());
   2057                                     assert(ex == "+0.000000000000000");
   2058                                     assert(ios.width() == 0);
   2059                                 }
   2060                                 ios.width(25);
   2061                                 left(ios);
   2062                                 {
   2063                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2064                                     std::string ex(str, iter.base());
   2065                                     assert(ex == "+0.000000000000000*******");
   2066                                     assert(ios.width() == 0);
   2067                                 }
   2068                                 ios.width(25);
   2069                                 right(ios);
   2070                                 {
   2071                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2072                                     std::string ex(str, iter.base());
   2073                                     assert(ex == "*******+0.000000000000000");
   2074                                     assert(ios.width() == 0);
   2075                                 }
   2076                                 ios.width(25);
   2077                                 internal(ios);
   2078                                 {
   2079                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2080                                     std::string ex(str, iter.base());
   2081                                     assert(ex == "+*******0.000000000000000");
   2082                                     assert(ios.width() == 0);
   2083                                 }
   2084                             }
   2085                             ios.imbue(lg);
   2086                             {
   2087                                 ios.width(0);
   2088                                 {
   2089                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2090                                     std::string ex(str, iter.base());
   2091                                     assert(ex == "+0;000000000000000");
   2092                                     assert(ios.width() == 0);
   2093                                 }
   2094                                 ios.width(25);
   2095                                 left(ios);
   2096                                 {
   2097                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2098                                     std::string ex(str, iter.base());
   2099                                     assert(ex == "+0;000000000000000*******");
   2100                                     assert(ios.width() == 0);
   2101                                 }
   2102                                 ios.width(25);
   2103                                 right(ios);
   2104                                 {
   2105                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2106                                     std::string ex(str, iter.base());
   2107                                     assert(ex == "*******+0;000000000000000");
   2108                                     assert(ios.width() == 0);
   2109                                 }
   2110                                 ios.width(25);
   2111                                 internal(ios);
   2112                                 {
   2113                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2114                                     std::string ex(str, iter.base());
   2115                                     assert(ex == "+*******0;000000000000000");
   2116                                     assert(ios.width() == 0);
   2117                                 }
   2118                             }
   2119                         }
   2120                     }
   2121                 }
   2122                 uppercase(ios);
   2123                 {
   2124                     noshowpos(ios);
   2125                     {
   2126                         noshowpoint(ios);
   2127                         {
   2128                             ios.imbue(lc);
   2129                             {
   2130                                 ios.width(0);
   2131                                 {
   2132                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2133                                     std::string ex(str, iter.base());
   2134                                     assert(ex == "0");
   2135                                     assert(ios.width() == 0);
   2136                                 }
   2137                                 ios.width(25);
   2138                                 left(ios);
   2139                                 {
   2140                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2141                                     std::string ex(str, iter.base());
   2142                                     assert(ex == "0************************");
   2143                                     assert(ios.width() == 0);
   2144                                 }
   2145                                 ios.width(25);
   2146                                 right(ios);
   2147                                 {
   2148                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2149                                     std::string ex(str, iter.base());
   2150                                     assert(ex == "************************0");
   2151                                     assert(ios.width() == 0);
   2152                                 }
   2153                                 ios.width(25);
   2154                                 internal(ios);
   2155                                 {
   2156                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2157                                     std::string ex(str, iter.base());
   2158                                     assert(ex == "************************0");
   2159                                     assert(ios.width() == 0);
   2160                                 }
   2161                             }
   2162                             ios.imbue(lg);
   2163                             {
   2164                                 ios.width(0);
   2165                                 {
   2166                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2167                                     std::string ex(str, iter.base());
   2168                                     assert(ex == "0");
   2169                                     assert(ios.width() == 0);
   2170                                 }
   2171                                 ios.width(25);
   2172                                 left(ios);
   2173                                 {
   2174                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2175                                     std::string ex(str, iter.base());
   2176                                     assert(ex == "0************************");
   2177                                     assert(ios.width() == 0);
   2178                                 }
   2179                                 ios.width(25);
   2180                                 right(ios);
   2181                                 {
   2182                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2183                                     std::string ex(str, iter.base());
   2184                                     assert(ex == "************************0");
   2185                                     assert(ios.width() == 0);
   2186                                 }
   2187                                 ios.width(25);
   2188                                 internal(ios);
   2189                                 {
   2190                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2191                                     std::string ex(str, iter.base());
   2192                                     assert(ex == "************************0");
   2193                                     assert(ios.width() == 0);
   2194                                 }
   2195                             }
   2196                         }
   2197                         showpoint(ios);
   2198                         {
   2199                             ios.imbue(lc);
   2200                             {
   2201                                 ios.width(0);
   2202                                 {
   2203                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2204                                     std::string ex(str, iter.base());
   2205                                     assert(ex == "0.000000000000000");
   2206                                     assert(ios.width() == 0);
   2207                                 }
   2208                                 ios.width(25);
   2209                                 left(ios);
   2210                                 {
   2211                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2212                                     std::string ex(str, iter.base());
   2213                                     assert(ex == "0.000000000000000********");
   2214                                     assert(ios.width() == 0);
   2215                                 }
   2216                                 ios.width(25);
   2217                                 right(ios);
   2218                                 {
   2219                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2220                                     std::string ex(str, iter.base());
   2221                                     assert(ex == "********0.000000000000000");
   2222                                     assert(ios.width() == 0);
   2223                                 }
   2224                                 ios.width(25);
   2225                                 internal(ios);
   2226                                 {
   2227                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2228                                     std::string ex(str, iter.base());
   2229                                     assert(ex == "********0.000000000000000");
   2230                                     assert(ios.width() == 0);
   2231                                 }
   2232                             }
   2233                             ios.imbue(lg);
   2234                             {
   2235                                 ios.width(0);
   2236                                 {
   2237                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2238                                     std::string ex(str, iter.base());
   2239                                     assert(ex == "0;000000000000000");
   2240                                     assert(ios.width() == 0);
   2241                                 }
   2242                                 ios.width(25);
   2243                                 left(ios);
   2244                                 {
   2245                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2246                                     std::string ex(str, iter.base());
   2247                                     assert(ex == "0;000000000000000********");
   2248                                     assert(ios.width() == 0);
   2249                                 }
   2250                                 ios.width(25);
   2251                                 right(ios);
   2252                                 {
   2253                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2254                                     std::string ex(str, iter.base());
   2255                                     assert(ex == "********0;000000000000000");
   2256                                     assert(ios.width() == 0);
   2257                                 }
   2258                                 ios.width(25);
   2259                                 internal(ios);
   2260                                 {
   2261                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2262                                     std::string ex(str, iter.base());
   2263                                     assert(ex == "********0;000000000000000");
   2264                                     assert(ios.width() == 0);
   2265                                 }
   2266                             }
   2267                         }
   2268                     }
   2269                     showpos(ios);
   2270                     {
   2271                         noshowpoint(ios);
   2272                         {
   2273                             ios.imbue(lc);
   2274                             {
   2275                                 ios.width(0);
   2276                                 {
   2277                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2278                                     std::string ex(str, iter.base());
   2279                                     assert(ex == "+0");
   2280                                     assert(ios.width() == 0);
   2281                                 }
   2282                                 ios.width(25);
   2283                                 left(ios);
   2284                                 {
   2285                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2286                                     std::string ex(str, iter.base());
   2287                                     assert(ex == "+0***********************");
   2288                                     assert(ios.width() == 0);
   2289                                 }
   2290                                 ios.width(25);
   2291                                 right(ios);
   2292                                 {
   2293                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2294                                     std::string ex(str, iter.base());
   2295                                     assert(ex == "***********************+0");
   2296                                     assert(ios.width() == 0);
   2297                                 }
   2298                                 ios.width(25);
   2299                                 internal(ios);
   2300                                 {
   2301                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2302                                     std::string ex(str, iter.base());
   2303                                     assert(ex == "+***********************0");
   2304                                     assert(ios.width() == 0);
   2305                                 }
   2306                             }
   2307                             ios.imbue(lg);
   2308                             {
   2309                                 ios.width(0);
   2310                                 {
   2311                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2312                                     std::string ex(str, iter.base());
   2313                                     assert(ex == "+0");
   2314                                     assert(ios.width() == 0);
   2315                                 }
   2316                                 ios.width(25);
   2317                                 left(ios);
   2318                                 {
   2319                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2320                                     std::string ex(str, iter.base());
   2321                                     assert(ex == "+0***********************");
   2322                                     assert(ios.width() == 0);
   2323                                 }
   2324                                 ios.width(25);
   2325                                 right(ios);
   2326                                 {
   2327                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2328                                     std::string ex(str, iter.base());
   2329                                     assert(ex == "***********************+0");
   2330                                     assert(ios.width() == 0);
   2331                                 }
   2332                                 ios.width(25);
   2333                                 internal(ios);
   2334                                 {
   2335                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2336                                     std::string ex(str, iter.base());
   2337                                     assert(ex == "+***********************0");
   2338                                     assert(ios.width() == 0);
   2339                                 }
   2340                             }
   2341                         }
   2342                         showpoint(ios);
   2343                         {
   2344                             ios.imbue(lc);
   2345                             {
   2346                                 ios.width(0);
   2347                                 {
   2348                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2349                                     std::string ex(str, iter.base());
   2350                                     assert(ex == "+0.000000000000000");
   2351                                     assert(ios.width() == 0);
   2352                                 }
   2353                                 ios.width(25);
   2354                                 left(ios);
   2355                                 {
   2356                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2357                                     std::string ex(str, iter.base());
   2358                                     assert(ex == "+0.000000000000000*******");
   2359                                     assert(ios.width() == 0);
   2360                                 }
   2361                                 ios.width(25);
   2362                                 right(ios);
   2363                                 {
   2364                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2365                                     std::string ex(str, iter.base());
   2366                                     assert(ex == "*******+0.000000000000000");
   2367                                     assert(ios.width() == 0);
   2368                                 }
   2369                                 ios.width(25);
   2370                                 internal(ios);
   2371                                 {
   2372                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2373                                     std::string ex(str, iter.base());
   2374                                     assert(ex == "+*******0.000000000000000");
   2375                                     assert(ios.width() == 0);
   2376                                 }
   2377                             }
   2378                             ios.imbue(lg);
   2379                             {
   2380                                 ios.width(0);
   2381                                 {
   2382                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2383                                     std::string ex(str, iter.base());
   2384                                     assert(ex == "+0;000000000000000");
   2385                                     assert(ios.width() == 0);
   2386                                 }
   2387                                 ios.width(25);
   2388                                 left(ios);
   2389                                 {
   2390                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2391                                     std::string ex(str, iter.base());
   2392                                     assert(ex == "+0;000000000000000*******");
   2393                                     assert(ios.width() == 0);
   2394                                 }
   2395                                 ios.width(25);
   2396                                 right(ios);
   2397                                 {
   2398                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2399                                     std::string ex(str, iter.base());
   2400                                     assert(ex == "*******+0;000000000000000");
   2401                                     assert(ios.width() == 0);
   2402                                 }
   2403                                 ios.width(25);
   2404                                 internal(ios);
   2405                                 {
   2406                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2407                                     std::string ex(str, iter.base());
   2408                                     assert(ex == "+*******0;000000000000000");
   2409                                     assert(ios.width() == 0);
   2410                                 }
   2411                             }
   2412                         }
   2413                     }
   2414                 }
   2415             }
   2416             ios.precision(60);
   2417             {
   2418                 nouppercase(ios);
   2419                 {
   2420                     noshowpos(ios);
   2421                     {
   2422                         noshowpoint(ios);
   2423                         {
   2424                             ios.imbue(lc);
   2425                             {
   2426                                 ios.width(0);
   2427                                 {
   2428                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2429                                     std::string ex(str, iter.base());
   2430                                     assert(ex == "0");
   2431                                     assert(ios.width() == 0);
   2432                                 }
   2433                                 ios.width(25);
   2434                                 left(ios);
   2435                                 {
   2436                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2437                                     std::string ex(str, iter.base());
   2438                                     assert(ex == "0************************");
   2439                                     assert(ios.width() == 0);
   2440                                 }
   2441                                 ios.width(25);
   2442                                 right(ios);
   2443                                 {
   2444                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2445                                     std::string ex(str, iter.base());
   2446                                     assert(ex == "************************0");
   2447                                     assert(ios.width() == 0);
   2448                                 }
   2449                                 ios.width(25);
   2450                                 internal(ios);
   2451                                 {
   2452                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2453                                     std::string ex(str, iter.base());
   2454                                     assert(ex == "************************0");
   2455                                     assert(ios.width() == 0);
   2456                                 }
   2457                             }
   2458                             ios.imbue(lg);
   2459                             {
   2460                                 ios.width(0);
   2461                                 {
   2462                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2463                                     std::string ex(str, iter.base());
   2464                                     assert(ex == "0");
   2465                                     assert(ios.width() == 0);
   2466                                 }
   2467                                 ios.width(25);
   2468                                 left(ios);
   2469                                 {
   2470                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2471                                     std::string ex(str, iter.base());
   2472                                     assert(ex == "0************************");
   2473                                     assert(ios.width() == 0);
   2474                                 }
   2475                                 ios.width(25);
   2476                                 right(ios);
   2477                                 {
   2478                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2479                                     std::string ex(str, iter.base());
   2480                                     assert(ex == "************************0");
   2481                                     assert(ios.width() == 0);
   2482                                 }
   2483                                 ios.width(25);
   2484                                 internal(ios);
   2485                                 {
   2486                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2487                                     std::string ex(str, iter.base());
   2488                                     assert(ex == "************************0");
   2489                                     assert(ios.width() == 0);
   2490                                 }
   2491                             }
   2492                         }
   2493                         showpoint(ios);
   2494                         {
   2495                             ios.imbue(lc);
   2496                             {
   2497                                 ios.width(0);
   2498                                 {
   2499                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2500                                     std::string ex(str, iter.base());
   2501                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
   2502                                     assert(ios.width() == 0);
   2503                                 }
   2504                                 ios.width(25);
   2505                                 left(ios);
   2506                                 {
   2507                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2508                                     std::string ex(str, iter.base());
   2509                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
   2510                                     assert(ios.width() == 0);
   2511                                 }
   2512                                 ios.width(25);
   2513                                 right(ios);
   2514                                 {
   2515                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2516                                     std::string ex(str, iter.base());
   2517                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
   2518                                     assert(ios.width() == 0);
   2519                                 }
   2520                                 ios.width(25);
   2521                                 internal(ios);
   2522                                 {
   2523                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2524                                     std::string ex(str, iter.base());
   2525                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
   2526                                     assert(ios.width() == 0);
   2527                                 }
   2528                             }
   2529                             ios.imbue(lg);
   2530                             {
   2531                                 ios.width(0);
   2532                                 {
   2533                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2534                                     std::string ex(str, iter.base());
   2535                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
   2536                                     assert(ios.width() == 0);
   2537                                 }
   2538                                 ios.width(25);
   2539                                 left(ios);
   2540                                 {
   2541                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2542                                     std::string ex(str, iter.base());
   2543                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
   2544                                     assert(ios.width() == 0);
   2545                                 }
   2546                                 ios.width(25);
   2547                                 right(ios);
   2548                                 {
   2549                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2550                                     std::string ex(str, iter.base());
   2551                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
   2552                                     assert(ios.width() == 0);
   2553                                 }
   2554                                 ios.width(25);
   2555                                 internal(ios);
   2556                                 {
   2557                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2558                                     std::string ex(str, iter.base());
   2559                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
   2560                                     assert(ios.width() == 0);
   2561                                 }
   2562                             }
   2563                         }
   2564                     }
   2565                     showpos(ios);
   2566                     {
   2567                         noshowpoint(ios);
   2568                         {
   2569                             ios.imbue(lc);
   2570                             {
   2571                                 ios.width(0);
   2572                                 {
   2573                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2574                                     std::string ex(str, iter.base());
   2575                                     assert(ex == "+0");
   2576                                     assert(ios.width() == 0);
   2577                                 }
   2578                                 ios.width(25);
   2579                                 left(ios);
   2580                                 {
   2581                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2582                                     std::string ex(str, iter.base());
   2583                                     assert(ex == "+0***********************");
   2584                                     assert(ios.width() == 0);
   2585                                 }
   2586                                 ios.width(25);
   2587                                 right(ios);
   2588                                 {
   2589                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2590                                     std::string ex(str, iter.base());
   2591                                     assert(ex == "***********************+0");
   2592                                     assert(ios.width() == 0);
   2593                                 }
   2594                                 ios.width(25);
   2595                                 internal(ios);
   2596                                 {
   2597                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2598                                     std::string ex(str, iter.base());
   2599                                     assert(ex == "+***********************0");
   2600                                     assert(ios.width() == 0);
   2601                                 }
   2602                             }
   2603                             ios.imbue(lg);
   2604                             {
   2605                                 ios.width(0);
   2606                                 {
   2607                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2608                                     std::string ex(str, iter.base());
   2609                                     assert(ex == "+0");
   2610                                     assert(ios.width() == 0);
   2611                                 }
   2612                                 ios.width(25);
   2613                                 left(ios);
   2614                                 {
   2615                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2616                                     std::string ex(str, iter.base());
   2617                                     assert(ex == "+0***********************");
   2618                                     assert(ios.width() == 0);
   2619                                 }
   2620                                 ios.width(25);
   2621                                 right(ios);
   2622                                 {
   2623                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2624                                     std::string ex(str, iter.base());
   2625                                     assert(ex == "***********************+0");
   2626                                     assert(ios.width() == 0);
   2627                                 }
   2628                                 ios.width(25);
   2629                                 internal(ios);
   2630                                 {
   2631                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2632                                     std::string ex(str, iter.base());
   2633                                     assert(ex == "+***********************0");
   2634                                     assert(ios.width() == 0);
   2635                                 }
   2636                             }
   2637                         }
   2638                         showpoint(ios);
   2639                         {
   2640                             ios.imbue(lc);
   2641                             {
   2642                                 ios.width(0);
   2643                                 {
   2644                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2645                                     std::string ex(str, iter.base());
   2646                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
   2647                                     assert(ios.width() == 0);
   2648                                 }
   2649                                 ios.width(25);
   2650                                 left(ios);
   2651                                 {
   2652                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2653                                     std::string ex(str, iter.base());
   2654                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
   2655                                     assert(ios.width() == 0);
   2656                                 }
   2657                                 ios.width(25);
   2658                                 right(ios);
   2659                                 {
   2660                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2661                                     std::string ex(str, iter.base());
   2662                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
   2663                                     assert(ios.width() == 0);
   2664                                 }
   2665                                 ios.width(25);
   2666                                 internal(ios);
   2667                                 {
   2668                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2669                                     std::string ex(str, iter.base());
   2670                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
   2671                                     assert(ios.width() == 0);
   2672                                 }
   2673                             }
   2674                             ios.imbue(lg);
   2675                             {
   2676                                 ios.width(0);
   2677                                 {
   2678                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2679                                     std::string ex(str, iter.base());
   2680                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
   2681                                     assert(ios.width() == 0);
   2682                                 }
   2683                                 ios.width(25);
   2684                                 left(ios);
   2685                                 {
   2686                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2687                                     std::string ex(str, iter.base());
   2688                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
   2689                                     assert(ios.width() == 0);
   2690                                 }
   2691                                 ios.width(25);
   2692                                 right(ios);
   2693                                 {
   2694                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2695                                     std::string ex(str, iter.base());
   2696                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
   2697                                     assert(ios.width() == 0);
   2698                                 }
   2699                                 ios.width(25);
   2700                                 internal(ios);
   2701                                 {
   2702                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2703                                     std::string ex(str, iter.base());
   2704                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
   2705                                     assert(ios.width() == 0);
   2706                                 }
   2707                             }
   2708                         }
   2709                     }
   2710                 }
   2711                 uppercase(ios);
   2712                 {
   2713                     noshowpos(ios);
   2714                     {
   2715                         noshowpoint(ios);
   2716                         {
   2717                             ios.imbue(lc);
   2718                             {
   2719                                 ios.width(0);
   2720                                 {
   2721                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2722                                     std::string ex(str, iter.base());
   2723                                     assert(ex == "0");
   2724                                     assert(ios.width() == 0);
   2725                                 }
   2726                                 ios.width(25);
   2727                                 left(ios);
   2728                                 {
   2729                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2730                                     std::string ex(str, iter.base());
   2731                                     assert(ex == "0************************");
   2732                                     assert(ios.width() == 0);
   2733                                 }
   2734                                 ios.width(25);
   2735                                 right(ios);
   2736                                 {
   2737                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2738                                     std::string ex(str, iter.base());
   2739                                     assert(ex == "************************0");
   2740                                     assert(ios.width() == 0);
   2741                                 }
   2742                                 ios.width(25);
   2743                                 internal(ios);
   2744                                 {
   2745                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2746                                     std::string ex(str, iter.base());
   2747                                     assert(ex == "************************0");
   2748                                     assert(ios.width() == 0);
   2749                                 }
   2750                             }
   2751                             ios.imbue(lg);
   2752                             {
   2753                                 ios.width(0);
   2754                                 {
   2755                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2756                                     std::string ex(str, iter.base());
   2757                                     assert(ex == "0");
   2758                                     assert(ios.width() == 0);
   2759                                 }
   2760                                 ios.width(25);
   2761                                 left(ios);
   2762                                 {
   2763                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2764                                     std::string ex(str, iter.base());
   2765                                     assert(ex == "0************************");
   2766                                     assert(ios.width() == 0);
   2767                                 }
   2768                                 ios.width(25);
   2769                                 right(ios);
   2770                                 {
   2771                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2772                                     std::string ex(str, iter.base());
   2773                                     assert(ex == "************************0");
   2774                                     assert(ios.width() == 0);
   2775                                 }
   2776                                 ios.width(25);
   2777                                 internal(ios);
   2778                                 {
   2779                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2780                                     std::string ex(str, iter.base());
   2781                                     assert(ex == "************************0");
   2782                                     assert(ios.width() == 0);
   2783                                 }
   2784                             }
   2785                         }
   2786                         showpoint(ios);
   2787                         {
   2788                             ios.imbue(lc);
   2789                             {
   2790                                 ios.width(0);
   2791                                 {
   2792                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2793                                     std::string ex(str, iter.base());
   2794                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
   2795                                     assert(ios.width() == 0);
   2796                                 }
   2797                                 ios.width(25);
   2798                                 left(ios);
   2799                                 {
   2800                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2801                                     std::string ex(str, iter.base());
   2802                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
   2803                                     assert(ios.width() == 0);
   2804                                 }
   2805                                 ios.width(25);
   2806                                 right(ios);
   2807                                 {
   2808                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2809                                     std::string ex(str, iter.base());
   2810                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
   2811                                     assert(ios.width() == 0);
   2812                                 }
   2813                                 ios.width(25);
   2814                                 internal(ios);
   2815                                 {
   2816                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2817                                     std::string ex(str, iter.base());
   2818                                     assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
   2819                                     assert(ios.width() == 0);
   2820                                 }
   2821                             }
   2822                             ios.imbue(lg);
   2823                             {
   2824                                 ios.width(0);
   2825                                 {
   2826                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2827                                     std::string ex(str, iter.base());
   2828                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
   2829                                     assert(ios.width() == 0);
   2830                                 }
   2831                                 ios.width(25);
   2832                                 left(ios);
   2833                                 {
   2834                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2835                                     std::string ex(str, iter.base());
   2836                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
   2837                                     assert(ios.width() == 0);
   2838                                 }
   2839                                 ios.width(25);
   2840                                 right(ios);
   2841                                 {
   2842                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2843                                     std::string ex(str, iter.base());
   2844                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
   2845                                     assert(ios.width() == 0);
   2846                                 }
   2847                                 ios.width(25);
   2848                                 internal(ios);
   2849                                 {
   2850                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2851                                     std::string ex(str, iter.base());
   2852                                     assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
   2853                                     assert(ios.width() == 0);
   2854                                 }
   2855                             }
   2856                         }
   2857                     }
   2858                     showpos(ios);
   2859                     {
   2860                         noshowpoint(ios);
   2861                         {
   2862                             ios.imbue(lc);
   2863                             {
   2864                                 ios.width(0);
   2865                                 {
   2866                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2867                                     std::string ex(str, iter.base());
   2868                                     assert(ex == "+0");
   2869                                     assert(ios.width() == 0);
   2870                                 }
   2871                                 ios.width(25);
   2872                                 left(ios);
   2873                                 {
   2874                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2875                                     std::string ex(str, iter.base());
   2876                                     assert(ex == "+0***********************");
   2877                                     assert(ios.width() == 0);
   2878                                 }
   2879                                 ios.width(25);
   2880                                 right(ios);
   2881                                 {
   2882                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2883                                     std::string ex(str, iter.base());
   2884                                     assert(ex == "***********************+0");
   2885                                     assert(ios.width() == 0);
   2886                                 }
   2887                                 ios.width(25);
   2888                                 internal(ios);
   2889                                 {
   2890                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2891                                     std::string ex(str, iter.base());
   2892                                     assert(ex == "+***********************0");
   2893                                     assert(ios.width() == 0);
   2894                                 }
   2895                             }
   2896                             ios.imbue(lg);
   2897                             {
   2898                                 ios.width(0);
   2899                                 {
   2900                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2901                                     std::string ex(str, iter.base());
   2902                                     assert(ex == "+0");
   2903                                     assert(ios.width() == 0);
   2904                                 }
   2905                                 ios.width(25);
   2906                                 left(ios);
   2907                                 {
   2908                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2909                                     std::string ex(str, iter.base());
   2910                                     assert(ex == "+0***********************");
   2911                                     assert(ios.width() == 0);
   2912                                 }
   2913                                 ios.width(25);
   2914                                 right(ios);
   2915                                 {
   2916                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2917                                     std::string ex(str, iter.base());
   2918                                     assert(ex == "***********************+0");
   2919                                     assert(ios.width() == 0);
   2920                                 }
   2921                                 ios.width(25);
   2922                                 internal(ios);
   2923                                 {
   2924                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2925                                     std::string ex(str, iter.base());
   2926                                     assert(ex == "+***********************0");
   2927                                     assert(ios.width() == 0);
   2928                                 }
   2929                             }
   2930                         }
   2931                         showpoint(ios);
   2932                         {
   2933                             ios.imbue(lc);
   2934                             {
   2935                                 ios.width(0);
   2936                                 {
   2937                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2938                                     std::string ex(str, iter.base());
   2939                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
   2940                                     assert(ios.width() == 0);
   2941                                 }
   2942                                 ios.width(25);
   2943                                 left(ios);
   2944                                 {
   2945                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2946                                     std::string ex(str, iter.base());
   2947                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
   2948                                     assert(ios.width() == 0);
   2949                                 }
   2950                                 ios.width(25);
   2951                                 right(ios);
   2952                                 {
   2953                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2954                                     std::string ex(str, iter.base());
   2955                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
   2956                                     assert(ios.width() == 0);
   2957                                 }
   2958                                 ios.width(25);
   2959                                 internal(ios);
   2960                                 {
   2961                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2962                                     std::string ex(str, iter.base());
   2963                                     assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
   2964                                     assert(ios.width() == 0);
   2965                                 }
   2966                             }
   2967                             ios.imbue(lg);
   2968                             {
   2969                                 ios.width(0);
   2970                                 {
   2971                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2972                                     std::string ex(str, iter.base());
   2973                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
   2974                                     assert(ios.width() == 0);
   2975                                 }
   2976                                 ios.width(25);
   2977                                 left(ios);
   2978                                 {
   2979                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2980                                     std::string ex(str, iter.base());
   2981                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
   2982                                     assert(ios.width() == 0);
   2983                                 }
   2984                                 ios.width(25);
   2985                                 right(ios);
   2986                                 {
   2987                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2988                                     std::string ex(str, iter.base());
   2989                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
   2990                                     assert(ios.width() == 0);
   2991                                 }
   2992                                 ios.width(25);
   2993                                 internal(ios);
   2994                                 {
   2995                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   2996                                     std::string ex(str, iter.base());
   2997                                     assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
   2998                                     assert(ios.width() == 0);
   2999                                 }
   3000                             }
   3001                         }
   3002                     }
   3003                 }
   3004             }
   3005         }
   3006     }
   3007 }
   3008 
   3009 void test2()
   3010 {
   3011     char str[200];
   3012     output_iterator<char*> iter;
   3013     std::locale lc = std::locale::classic();
   3014     std::locale lg(lc, new my_numpunct);
   3015     const my_facet f(1);
   3016     {
   3017         double v = 1234567890.125;
   3018         std::ios ios(0);
   3019         // %g
   3020         {
   3021             ios.precision(0);
   3022             {
   3023                 nouppercase(ios);
   3024                 {
   3025                     noshowpos(ios);
   3026                     {
   3027                         noshowpoint(ios);
   3028                         {
   3029                             ios.imbue(lc);
   3030                             {
   3031                                 ios.width(0);
   3032                                 {
   3033                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3034                                     std::string ex(str, iter.base());
   3035                                     assert(ex == "1e+09");
   3036                                     assert(ios.width() == 0);
   3037                                 }
   3038                                 ios.width(25);
   3039                                 left(ios);
   3040                                 {
   3041                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3042                                     std::string ex(str, iter.base());
   3043                                     assert(ex == "1e+09********************");
   3044                                     assert(ios.width() == 0);
   3045                                 }
   3046                                 ios.width(25);
   3047                                 right(ios);
   3048                                 {
   3049                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3050                                     std::string ex(str, iter.base());
   3051                                     assert(ex == "********************1e+09");
   3052                                     assert(ios.width() == 0);
   3053                                 }
   3054                                 ios.width(25);
   3055                                 internal(ios);
   3056                                 {
   3057                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3058                                     std::string ex(str, iter.base());
   3059                                     assert(ex == "********************1e+09");
   3060                                     assert(ios.width() == 0);
   3061                                 }
   3062                             }
   3063                             ios.imbue(lg);
   3064                             {
   3065                                 ios.width(0);
   3066                                 {
   3067                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3068                                     std::string ex(str, iter.base());
   3069                                     assert(ex == "1e+09");
   3070                                     assert(ios.width() == 0);
   3071                                 }
   3072                                 ios.width(25);
   3073                                 left(ios);
   3074                                 {
   3075                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3076                                     std::string ex(str, iter.base());
   3077                                     assert(ex == "1e+09********************");
   3078                                     assert(ios.width() == 0);
   3079                                 }
   3080                                 ios.width(25);
   3081                                 right(ios);
   3082                                 {
   3083                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3084                                     std::string ex(str, iter.base());
   3085                                     assert(ex == "********************1e+09");
   3086                                     assert(ios.width() == 0);
   3087                                 }
   3088                                 ios.width(25);
   3089                                 internal(ios);
   3090                                 {
   3091                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3092                                     std::string ex(str, iter.base());
   3093                                     assert(ex == "********************1e+09");
   3094                                     assert(ios.width() == 0);
   3095                                 }
   3096                             }
   3097                         }
   3098                         showpoint(ios);
   3099                         {
   3100                             ios.imbue(lc);
   3101                             {
   3102                                 ios.width(0);
   3103                                 {
   3104                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3105                                     std::string ex(str, iter.base());
   3106                                     assert(ex == "1.e+09");
   3107                                     assert(ios.width() == 0);
   3108                                 }
   3109                                 ios.width(25);
   3110                                 left(ios);
   3111                                 {
   3112                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3113                                     std::string ex(str, iter.base());
   3114                                     assert(ex == "1.e+09*******************");
   3115                                     assert(ios.width() == 0);
   3116                                 }
   3117                                 ios.width(25);
   3118                                 right(ios);
   3119                                 {
   3120                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3121                                     std::string ex(str, iter.base());
   3122                                     assert(ex == "*******************1.e+09");
   3123                                     assert(ios.width() == 0);
   3124                                 }
   3125                                 ios.width(25);
   3126                                 internal(ios);
   3127                                 {
   3128                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3129                                     std::string ex(str, iter.base());
   3130                                     assert(ex == "*******************1.e+09");
   3131                                     assert(ios.width() == 0);
   3132                                 }
   3133                             }
   3134                             ios.imbue(lg);
   3135                             {
   3136                                 ios.width(0);
   3137                                 {
   3138                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3139                                     std::string ex(str, iter.base());
   3140                                     assert(ex == "1;e+09");
   3141                                     assert(ios.width() == 0);
   3142                                 }
   3143                                 ios.width(25);
   3144                                 left(ios);
   3145                                 {
   3146                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3147                                     std::string ex(str, iter.base());
   3148                                     assert(ex == "1;e+09*******************");
   3149                                     assert(ios.width() == 0);
   3150                                 }
   3151                                 ios.width(25);
   3152                                 right(ios);
   3153                                 {
   3154                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3155                                     std::string ex(str, iter.base());
   3156                                     assert(ex == "*******************1;e+09");
   3157                                     assert(ios.width() == 0);
   3158                                 }
   3159                                 ios.width(25);
   3160                                 internal(ios);
   3161                                 {
   3162                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3163                                     std::string ex(str, iter.base());
   3164                                     assert(ex == "*******************1;e+09");
   3165                                     assert(ios.width() == 0);
   3166                                 }
   3167                             }
   3168                         }
   3169                     }
   3170                     showpos(ios);
   3171                     {
   3172                         noshowpoint(ios);
   3173                         {
   3174                             ios.imbue(lc);
   3175                             {
   3176                                 ios.width(0);
   3177                                 {
   3178                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3179                                     std::string ex(str, iter.base());
   3180                                     assert(ex == "+1e+09");
   3181                                     assert(ios.width() == 0);
   3182                                 }
   3183                                 ios.width(25);
   3184                                 left(ios);
   3185                                 {
   3186                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3187                                     std::string ex(str, iter.base());
   3188                                     assert(ex == "+1e+09*******************");
   3189                                     assert(ios.width() == 0);
   3190                                 }
   3191                                 ios.width(25);
   3192                                 right(ios);
   3193                                 {
   3194                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3195                                     std::string ex(str, iter.base());
   3196                                     assert(ex == "*******************+1e+09");
   3197                                     assert(ios.width() == 0);
   3198                                 }
   3199                                 ios.width(25);
   3200                                 internal(ios);
   3201                                 {
   3202                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3203                                     std::string ex(str, iter.base());
   3204                                     assert(ex == "+*******************1e+09");
   3205                                     assert(ios.width() == 0);
   3206                                 }
   3207                             }
   3208                             ios.imbue(lg);
   3209                             {
   3210                                 ios.width(0);
   3211                                 {
   3212                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3213                                     std::string ex(str, iter.base());
   3214                                     assert(ex == "+1e+09");
   3215                                     assert(ios.width() == 0);
   3216                                 }
   3217                                 ios.width(25);
   3218                                 left(ios);
   3219                                 {
   3220                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3221                                     std::string ex(str, iter.base());
   3222                                     assert(ex == "+1e+09*******************");
   3223                                     assert(ios.width() == 0);
   3224                                 }
   3225                                 ios.width(25);
   3226                                 right(ios);
   3227                                 {
   3228                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3229                                     std::string ex(str, iter.base());
   3230                                     assert(ex == "*******************+1e+09");
   3231                                     assert(ios.width() == 0);
   3232                                 }
   3233                                 ios.width(25);
   3234                                 internal(ios);
   3235                                 {
   3236                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3237                                     std::string ex(str, iter.base());
   3238                                     assert(ex == "+*******************1e+09");
   3239                                     assert(ios.width() == 0);
   3240                                 }
   3241                             }
   3242                         }
   3243                         showpoint(ios);
   3244                         {
   3245                             ios.imbue(lc);
   3246                             {
   3247                                 ios.width(0);
   3248                                 {
   3249                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3250                                     std::string ex(str, iter.base());
   3251                                     assert(ex == "+1.e+09");
   3252                                     assert(ios.width() == 0);
   3253                                 }
   3254                                 ios.width(25);
   3255                                 left(ios);
   3256                                 {
   3257                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3258                                     std::string ex(str, iter.base());
   3259                                     assert(ex == "+1.e+09******************");
   3260                                     assert(ios.width() == 0);
   3261                                 }
   3262                                 ios.width(25);
   3263                                 right(ios);
   3264                                 {
   3265                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3266                                     std::string ex(str, iter.base());
   3267                                     assert(ex == "******************+1.e+09");
   3268                                     assert(ios.width() == 0);
   3269                                 }
   3270                                 ios.width(25);
   3271                                 internal(ios);
   3272                                 {
   3273                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3274                                     std::string ex(str, iter.base());
   3275                                     assert(ex == "+******************1.e+09");
   3276                                     assert(ios.width() == 0);
   3277                                 }
   3278                             }
   3279                             ios.imbue(lg);
   3280                             {
   3281                                 ios.width(0);
   3282                                 {
   3283                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3284                                     std::string ex(str, iter.base());
   3285                                     assert(ex == "+1;e+09");
   3286                                     assert(ios.width() == 0);
   3287                                 }
   3288                                 ios.width(25);
   3289                                 left(ios);
   3290                                 {
   3291                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3292                                     std::string ex(str, iter.base());
   3293                                     assert(ex == "+1;e+09******************");
   3294                                     assert(ios.width() == 0);
   3295                                 }
   3296                                 ios.width(25);
   3297                                 right(ios);
   3298                                 {
   3299                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3300                                     std::string ex(str, iter.base());
   3301                                     assert(ex == "******************+1;e+09");
   3302                                     assert(ios.width() == 0);
   3303                                 }
   3304                                 ios.width(25);
   3305                                 internal(ios);
   3306                                 {
   3307                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3308                                     std::string ex(str, iter.base());
   3309                                     assert(ex == "+******************1;e+09");
   3310                                     assert(ios.width() == 0);
   3311                                 }
   3312                             }
   3313                         }
   3314                     }
   3315                 }
   3316                 uppercase(ios);
   3317                 {
   3318                     noshowpos(ios);
   3319                     {
   3320                         noshowpoint(ios);
   3321                         {
   3322                             ios.imbue(lc);
   3323                             {
   3324                                 ios.width(0);
   3325                                 {
   3326                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3327                                     std::string ex(str, iter.base());
   3328                                     assert(ex == "1E+09");
   3329                                     assert(ios.width() == 0);
   3330                                 }
   3331                                 ios.width(25);
   3332                                 left(ios);
   3333                                 {
   3334                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3335                                     std::string ex(str, iter.base());
   3336                                     assert(ex == "1E+09********************");
   3337                                     assert(ios.width() == 0);
   3338                                 }
   3339                                 ios.width(25);
   3340                                 right(ios);
   3341                                 {
   3342                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3343                                     std::string ex(str, iter.base());
   3344                                     assert(ex == "********************1E+09");
   3345                                     assert(ios.width() == 0);
   3346                                 }
   3347                                 ios.width(25);
   3348                                 internal(ios);
   3349                                 {
   3350                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3351                                     std::string ex(str, iter.base());
   3352                                     assert(ex == "********************1E+09");
   3353                                     assert(ios.width() == 0);
   3354                                 }
   3355                             }
   3356                             ios.imbue(lg);
   3357                             {
   3358                                 ios.width(0);
   3359                                 {
   3360                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3361                                     std::string ex(str, iter.base());
   3362                                     assert(ex == "1E+09");
   3363                                     assert(ios.width() == 0);
   3364                                 }
   3365                                 ios.width(25);
   3366                                 left(ios);
   3367                                 {
   3368                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3369                                     std::string ex(str, iter.base());
   3370                                     assert(ex == "1E+09********************");
   3371                                     assert(ios.width() == 0);
   3372                                 }
   3373                                 ios.width(25);
   3374                                 right(ios);
   3375                                 {
   3376                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3377                                     std::string ex(str, iter.base());
   3378                                     assert(ex == "********************1E+09");
   3379                                     assert(ios.width() == 0);
   3380                                 }
   3381                                 ios.width(25);
   3382                                 internal(ios);
   3383                                 {
   3384                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3385                                     std::string ex(str, iter.base());
   3386                                     assert(ex == "********************1E+09");
   3387                                     assert(ios.width() == 0);
   3388                                 }
   3389                             }
   3390                         }
   3391                         showpoint(ios);
   3392                         {
   3393                             ios.imbue(lc);
   3394                             {
   3395                                 ios.width(0);
   3396                                 {
   3397                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3398                                     std::string ex(str, iter.base());
   3399                                     assert(ex == "1.E+09");
   3400                                     assert(ios.width() == 0);
   3401                                 }
   3402                                 ios.width(25);
   3403                                 left(ios);
   3404                                 {
   3405                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3406                                     std::string ex(str, iter.base());
   3407                                     assert(ex == "1.E+09*******************");
   3408                                     assert(ios.width() == 0);
   3409                                 }
   3410                                 ios.width(25);
   3411                                 right(ios);
   3412                                 {
   3413                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3414                                     std::string ex(str, iter.base());
   3415                                     assert(ex == "*******************1.E+09");
   3416                                     assert(ios.width() == 0);
   3417                                 }
   3418                                 ios.width(25);
   3419                                 internal(ios);
   3420                                 {
   3421                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3422                                     std::string ex(str, iter.base());
   3423                                     assert(ex == "*******************1.E+09");
   3424                                     assert(ios.width() == 0);
   3425                                 }
   3426                             }
   3427                             ios.imbue(lg);
   3428                             {
   3429                                 ios.width(0);
   3430                                 {
   3431                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3432                                     std::string ex(str, iter.base());
   3433                                     assert(ex == "1;E+09");
   3434                                     assert(ios.width() == 0);
   3435                                 }
   3436                                 ios.width(25);
   3437                                 left(ios);
   3438                                 {
   3439                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3440                                     std::string ex(str, iter.base());
   3441                                     assert(ex == "1;E+09*******************");
   3442                                     assert(ios.width() == 0);
   3443                                 }
   3444                                 ios.width(25);
   3445                                 right(ios);
   3446                                 {
   3447                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3448                                     std::string ex(str, iter.base());
   3449                                     assert(ex == "*******************1;E+09");
   3450                                     assert(ios.width() == 0);
   3451                                 }
   3452                                 ios.width(25);
   3453                                 internal(ios);
   3454                                 {
   3455                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3456                                     std::string ex(str, iter.base());
   3457                                     assert(ex == "*******************1;E+09");
   3458                                     assert(ios.width() == 0);
   3459                                 }
   3460                             }
   3461                         }
   3462                     }
   3463                     showpos(ios);
   3464                     {
   3465                         noshowpoint(ios);
   3466                         {
   3467                             ios.imbue(lc);
   3468                             {
   3469                                 ios.width(0);
   3470                                 {
   3471                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3472                                     std::string ex(str, iter.base());
   3473                                     assert(ex == "+1E+09");
   3474                                     assert(ios.width() == 0);
   3475                                 }
   3476                                 ios.width(25);
   3477                                 left(ios);
   3478                                 {
   3479                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3480                                     std::string ex(str, iter.base());
   3481                                     assert(ex == "+1E+09*******************");
   3482                                     assert(ios.width() == 0);
   3483                                 }
   3484                                 ios.width(25);
   3485                                 right(ios);
   3486                                 {
   3487                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3488                                     std::string ex(str, iter.base());
   3489                                     assert(ex == "*******************+1E+09");
   3490                                     assert(ios.width() == 0);
   3491                                 }
   3492                                 ios.width(25);
   3493                                 internal(ios);
   3494                                 {
   3495                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3496                                     std::string ex(str, iter.base());
   3497                                     assert(ex == "+*******************1E+09");
   3498                                     assert(ios.width() == 0);
   3499                                 }
   3500                             }
   3501                             ios.imbue(lg);
   3502                             {
   3503                                 ios.width(0);
   3504                                 {
   3505                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3506                                     std::string ex(str, iter.base());
   3507                                     assert(ex == "+1E+09");
   3508                                     assert(ios.width() == 0);
   3509                                 }
   3510                                 ios.width(25);
   3511                                 left(ios);
   3512                                 {
   3513                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3514                                     std::string ex(str, iter.base());
   3515                                     assert(ex == "+1E+09*******************");
   3516                                     assert(ios.width() == 0);
   3517                                 }
   3518                                 ios.width(25);
   3519                                 right(ios);
   3520                                 {
   3521                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3522                                     std::string ex(str, iter.base());
   3523                                     assert(ex == "*******************+1E+09");
   3524                                     assert(ios.width() == 0);
   3525                                 }
   3526                                 ios.width(25);
   3527                                 internal(ios);
   3528                                 {
   3529                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3530                                     std::string ex(str, iter.base());
   3531                                     assert(ex == "+*******************1E+09");
   3532                                     assert(ios.width() == 0);
   3533                                 }
   3534                             }
   3535                         }
   3536                         showpoint(ios);
   3537                         {
   3538                             ios.imbue(lc);
   3539                             {
   3540                                 ios.width(0);
   3541                                 {
   3542                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3543                                     std::string ex(str, iter.base());
   3544                                     assert(ex == "+1.E+09");
   3545                                     assert(ios.width() == 0);
   3546                                 }
   3547                                 ios.width(25);
   3548                                 left(ios);
   3549                                 {
   3550                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3551                                     std::string ex(str, iter.base());
   3552                                     assert(ex == "+1.E+09******************");
   3553                                     assert(ios.width() == 0);
   3554                                 }
   3555                                 ios.width(25);
   3556                                 right(ios);
   3557                                 {
   3558                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3559                                     std::string ex(str, iter.base());
   3560                                     assert(ex == "******************+1.E+09");
   3561                                     assert(ios.width() == 0);
   3562                                 }
   3563                                 ios.width(25);
   3564                                 internal(ios);
   3565                                 {
   3566                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3567                                     std::string ex(str, iter.base());
   3568                                     assert(ex == "+******************1.E+09");
   3569                                     assert(ios.width() == 0);
   3570                                 }
   3571                             }
   3572                             ios.imbue(lg);
   3573                             {
   3574                                 ios.width(0);
   3575                                 {
   3576                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3577                                     std::string ex(str, iter.base());
   3578                                     assert(ex == "+1;E+09");
   3579                                     assert(ios.width() == 0);
   3580                                 }
   3581                                 ios.width(25);
   3582                                 left(ios);
   3583                                 {
   3584                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3585                                     std::string ex(str, iter.base());
   3586                                     assert(ex == "+1;E+09******************");
   3587                                     assert(ios.width() == 0);
   3588                                 }
   3589                                 ios.width(25);
   3590                                 right(ios);
   3591                                 {
   3592                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3593                                     std::string ex(str, iter.base());
   3594                                     assert(ex == "******************+1;E+09");
   3595                                     assert(ios.width() == 0);
   3596                                 }
   3597                                 ios.width(25);
   3598                                 internal(ios);
   3599                                 {
   3600                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3601                                     std::string ex(str, iter.base());
   3602                                     assert(ex == "+******************1;E+09");
   3603                                     assert(ios.width() == 0);
   3604                                 }
   3605                             }
   3606                         }
   3607                     }
   3608                 }
   3609             }
   3610             ios.precision(1);
   3611             {
   3612                 nouppercase(ios);
   3613                 {
   3614                     noshowpos(ios);
   3615                     {
   3616                         noshowpoint(ios);
   3617                         {
   3618                             ios.imbue(lc);
   3619                             {
   3620                                 ios.width(0);
   3621                                 {
   3622                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3623                                     std::string ex(str, iter.base());
   3624                                     assert(ex == "1e+09");
   3625                                     assert(ios.width() == 0);
   3626                                 }
   3627                                 ios.width(25);
   3628                                 left(ios);
   3629                                 {
   3630                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3631                                     std::string ex(str, iter.base());
   3632                                     assert(ex == "1e+09********************");
   3633                                     assert(ios.width() == 0);
   3634                                 }
   3635                                 ios.width(25);
   3636                                 right(ios);
   3637                                 {
   3638                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3639                                     std::string ex(str, iter.base());
   3640                                     assert(ex == "********************1e+09");
   3641                                     assert(ios.width() == 0);
   3642                                 }
   3643                                 ios.width(25);
   3644                                 internal(ios);
   3645                                 {
   3646                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3647                                     std::string ex(str, iter.base());
   3648                                     assert(ex == "********************1e+09");
   3649                                     assert(ios.width() == 0);
   3650                                 }
   3651                             }
   3652                             ios.imbue(lg);
   3653                             {
   3654                                 ios.width(0);
   3655                                 {
   3656                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3657                                     std::string ex(str, iter.base());
   3658                                     assert(ex == "1e+09");
   3659                                     assert(ios.width() == 0);
   3660                                 }
   3661                                 ios.width(25);
   3662                                 left(ios);
   3663                                 {
   3664                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3665                                     std::string ex(str, iter.base());
   3666                                     assert(ex == "1e+09********************");
   3667                                     assert(ios.width() == 0);
   3668                                 }
   3669                                 ios.width(25);
   3670                                 right(ios);
   3671                                 {
   3672                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3673                                     std::string ex(str, iter.base());
   3674                                     assert(ex == "********************1e+09");
   3675                                     assert(ios.width() == 0);
   3676                                 }
   3677                                 ios.width(25);
   3678                                 internal(ios);
   3679                                 {
   3680                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3681                                     std::string ex(str, iter.base());
   3682                                     assert(ex == "********************1e+09");
   3683                                     assert(ios.width() == 0);
   3684                                 }
   3685                             }
   3686                         }
   3687                         showpoint(ios);
   3688                         {
   3689                             ios.imbue(lc);
   3690                             {
   3691                                 ios.width(0);
   3692                                 {
   3693                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3694                                     std::string ex(str, iter.base());
   3695                                     assert(ex == "1.e+09");
   3696                                     assert(ios.width() == 0);
   3697                                 }
   3698                                 ios.width(25);
   3699                                 left(ios);
   3700                                 {
   3701                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3702                                     std::string ex(str, iter.base());
   3703                                     assert(ex == "1.e+09*******************");
   3704                                     assert(ios.width() == 0);
   3705                                 }
   3706                                 ios.width(25);
   3707                                 right(ios);
   3708                                 {
   3709                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3710                                     std::string ex(str, iter.base());
   3711                                     assert(ex == "*******************1.e+09");
   3712                                     assert(ios.width() == 0);
   3713                                 }
   3714                                 ios.width(25);
   3715                                 internal(ios);
   3716                                 {
   3717                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3718                                     std::string ex(str, iter.base());
   3719                                     assert(ex == "*******************1.e+09");
   3720                                     assert(ios.width() == 0);
   3721                                 }
   3722                             }
   3723                             ios.imbue(lg);
   3724                             {
   3725                                 ios.width(0);
   3726                                 {
   3727                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3728                                     std::string ex(str, iter.base());
   3729                                     assert(ex == "1;e+09");
   3730                                     assert(ios.width() == 0);
   3731                                 }
   3732                                 ios.width(25);
   3733                                 left(ios);
   3734                                 {
   3735                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3736                                     std::string ex(str, iter.base());
   3737                                     assert(ex == "1;e+09*******************");
   3738                                     assert(ios.width() == 0);
   3739                                 }
   3740                                 ios.width(25);
   3741                                 right(ios);
   3742                                 {
   3743                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3744                                     std::string ex(str, iter.base());
   3745                                     assert(ex == "*******************1;e+09");
   3746                                     assert(ios.width() == 0);
   3747                                 }
   3748                                 ios.width(25);
   3749                                 internal(ios);
   3750                                 {
   3751                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3752                                     std::string ex(str, iter.base());
   3753                                     assert(ex == "*******************1;e+09");
   3754                                     assert(ios.width() == 0);
   3755                                 }
   3756                             }
   3757                         }
   3758                     }
   3759                     showpos(ios);
   3760                     {
   3761                         noshowpoint(ios);
   3762                         {
   3763                             ios.imbue(lc);
   3764                             {
   3765                                 ios.width(0);
   3766                                 {
   3767                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3768                                     std::string ex(str, iter.base());
   3769                                     assert(ex == "+1e+09");
   3770                                     assert(ios.width() == 0);
   3771                                 }
   3772                                 ios.width(25);
   3773                                 left(ios);
   3774                                 {
   3775                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3776                                     std::string ex(str, iter.base());
   3777                                     assert(ex == "+1e+09*******************");
   3778                                     assert(ios.width() == 0);
   3779                                 }
   3780                                 ios.width(25);
   3781                                 right(ios);
   3782                                 {
   3783                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3784                                     std::string ex(str, iter.base());
   3785                                     assert(ex == "*******************+1e+09");
   3786                                     assert(ios.width() == 0);
   3787                                 }
   3788                                 ios.width(25);
   3789                                 internal(ios);
   3790                                 {
   3791                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3792                                     std::string ex(str, iter.base());
   3793                                     assert(ex == "+*******************1e+09");
   3794                                     assert(ios.width() == 0);
   3795                                 }
   3796                             }
   3797                             ios.imbue(lg);
   3798                             {
   3799                                 ios.width(0);
   3800                                 {
   3801                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3802                                     std::string ex(str, iter.base());
   3803                                     assert(ex == "+1e+09");
   3804                                     assert(ios.width() == 0);
   3805                                 }
   3806                                 ios.width(25);
   3807                                 left(ios);
   3808                                 {
   3809                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3810                                     std::string ex(str, iter.base());
   3811                                     assert(ex == "+1e+09*******************");
   3812                                     assert(ios.width() == 0);
   3813                                 }
   3814                                 ios.width(25);
   3815                                 right(ios);
   3816                                 {
   3817                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3818                                     std::string ex(str, iter.base());
   3819                                     assert(ex == "*******************+1e+09");
   3820                                     assert(ios.width() == 0);
   3821                                 }
   3822                                 ios.width(25);
   3823                                 internal(ios);
   3824                                 {
   3825                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3826                                     std::string ex(str, iter.base());
   3827                                     assert(ex == "+*******************1e+09");
   3828                                     assert(ios.width() == 0);
   3829                                 }
   3830                             }
   3831                         }
   3832                         showpoint(ios);
   3833                         {
   3834                             ios.imbue(lc);
   3835                             {
   3836                                 ios.width(0);
   3837                                 {
   3838                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3839                                     std::string ex(str, iter.base());
   3840                                     assert(ex == "+1.e+09");
   3841                                     assert(ios.width() == 0);
   3842                                 }
   3843                                 ios.width(25);
   3844                                 left(ios);
   3845                                 {
   3846                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3847                                     std::string ex(str, iter.base());
   3848                                     assert(ex == "+1.e+09******************");
   3849                                     assert(ios.width() == 0);
   3850                                 }
   3851                                 ios.width(25);
   3852                                 right(ios);
   3853                                 {
   3854                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3855                                     std::string ex(str, iter.base());
   3856                                     assert(ex == "******************+1.e+09");
   3857                                     assert(ios.width() == 0);
   3858                                 }
   3859                                 ios.width(25);
   3860                                 internal(ios);
   3861                                 {
   3862                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3863                                     std::string ex(str, iter.base());
   3864                                     assert(ex == "+******************1.e+09");
   3865                                     assert(ios.width() == 0);
   3866                                 }
   3867                             }
   3868                             ios.imbue(lg);
   3869                             {
   3870                                 ios.width(0);
   3871                                 {
   3872                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3873                                     std::string ex(str, iter.base());
   3874                                     assert(ex == "+1;e+09");
   3875                                     assert(ios.width() == 0);
   3876                                 }
   3877                                 ios.width(25);
   3878                                 left(ios);
   3879                                 {
   3880                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3881                                     std::string ex(str, iter.base());
   3882                                     assert(ex == "+1;e+09******************");
   3883                                     assert(ios.width() == 0);
   3884                                 }
   3885                                 ios.width(25);
   3886                                 right(ios);
   3887                                 {
   3888                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3889                                     std::string ex(str, iter.base());
   3890                                     assert(ex == "******************+1;e+09");
   3891                                     assert(ios.width() == 0);
   3892                                 }
   3893                                 ios.width(25);
   3894                                 internal(ios);
   3895                                 {
   3896                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3897                                     std::string ex(str, iter.base());
   3898                                     assert(ex == "+******************1;e+09");
   3899                                     assert(ios.width() == 0);
   3900                                 }
   3901                             }
   3902                         }
   3903                     }
   3904                 }
   3905                 uppercase(ios);
   3906                 {
   3907                     noshowpos(ios);
   3908                     {
   3909                         noshowpoint(ios);
   3910                         {
   3911                             ios.imbue(lc);
   3912                             {
   3913                                 ios.width(0);
   3914                                 {
   3915                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3916                                     std::string ex(str, iter.base());
   3917                                     assert(ex == "1E+09");
   3918                                     assert(ios.width() == 0);
   3919                                 }
   3920                                 ios.width(25);
   3921                                 left(ios);
   3922                                 {
   3923                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3924                                     std::string ex(str, iter.base());
   3925                                     assert(ex == "1E+09********************");
   3926                                     assert(ios.width() == 0);
   3927                                 }
   3928                                 ios.width(25);
   3929                                 right(ios);
   3930                                 {
   3931                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3932                                     std::string ex(str, iter.base());
   3933                                     assert(ex == "********************1E+09");
   3934                                     assert(ios.width() == 0);
   3935                                 }
   3936                                 ios.width(25);
   3937                                 internal(ios);
   3938                                 {
   3939                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3940                                     std::string ex(str, iter.base());
   3941                                     assert(ex == "********************1E+09");
   3942                                     assert(ios.width() == 0);
   3943                                 }
   3944                             }
   3945                             ios.imbue(lg);
   3946                             {
   3947                                 ios.width(0);
   3948                                 {
   3949                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3950                                     std::string ex(str, iter.base());
   3951                                     assert(ex == "1E+09");
   3952                                     assert(ios.width() == 0);
   3953                                 }
   3954                                 ios.width(25);
   3955                                 left(ios);
   3956                                 {
   3957                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3958                                     std::string ex(str, iter.base());
   3959                                     assert(ex == "1E+09********************");
   3960                                     assert(ios.width() == 0);
   3961                                 }
   3962                                 ios.width(25);
   3963                                 right(ios);
   3964                                 {
   3965                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3966                                     std::string ex(str, iter.base());
   3967                                     assert(ex == "********************1E+09");
   3968                                     assert(ios.width() == 0);
   3969                                 }
   3970                                 ios.width(25);
   3971                                 internal(ios);
   3972                                 {
   3973                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3974                                     std::string ex(str, iter.base());
   3975                                     assert(ex == "********************1E+09");
   3976                                     assert(ios.width() == 0);
   3977                                 }
   3978                             }
   3979                         }
   3980                         showpoint(ios);
   3981                         {
   3982                             ios.imbue(lc);
   3983                             {
   3984                                 ios.width(0);
   3985                                 {
   3986                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3987                                     std::string ex(str, iter.base());
   3988                                     assert(ex == "1.E+09");
   3989                                     assert(ios.width() == 0);
   3990                                 }
   3991                                 ios.width(25);
   3992                                 left(ios);
   3993                                 {
   3994                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   3995                                     std::string ex(str, iter.base());
   3996                                     assert(ex == "1.E+09*******************");
   3997                                     assert(ios.width() == 0);
   3998                                 }
   3999                                 ios.width(25);
   4000                                 right(ios);
   4001                                 {
   4002                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4003                                     std::string ex(str, iter.base());
   4004                                     assert(ex == "*******************1.E+09");
   4005                                     assert(ios.width() == 0);
   4006                                 }
   4007                                 ios.width(25);
   4008                                 internal(ios);
   4009                                 {
   4010                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4011                                     std::string ex(str, iter.base());
   4012                                     assert(ex == "*******************1.E+09");
   4013                                     assert(ios.width() == 0);
   4014                                 }
   4015                             }
   4016                             ios.imbue(lg);
   4017                             {
   4018                                 ios.width(0);
   4019                                 {
   4020                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4021                                     std::string ex(str, iter.base());
   4022                                     assert(ex == "1;E+09");
   4023                                     assert(ios.width() == 0);
   4024                                 }
   4025                                 ios.width(25);
   4026                                 left(ios);
   4027                                 {
   4028                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4029                                     std::string ex(str, iter.base());
   4030                                     assert(ex == "1;E+09*******************");
   4031                                     assert(ios.width() == 0);
   4032                                 }
   4033                                 ios.width(25);
   4034                                 right(ios);
   4035                                 {
   4036                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4037                                     std::string ex(str, iter.base());
   4038                                     assert(ex == "*******************1;E+09");
   4039                                     assert(ios.width() == 0);
   4040                                 }
   4041                                 ios.width(25);
   4042                                 internal(ios);
   4043                                 {
   4044                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4045                                     std::string ex(str, iter.base());
   4046                                     assert(ex == "*******************1;E+09");
   4047                                     assert(ios.width() == 0);
   4048                                 }
   4049                             }
   4050                         }
   4051                     }
   4052                     showpos(ios);
   4053                     {
   4054                         noshowpoint(ios);
   4055                         {
   4056                             ios.imbue(lc);
   4057                             {
   4058                                 ios.width(0);
   4059                                 {
   4060                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4061                                     std::string ex(str, iter.base());
   4062                                     assert(ex == "+1E+09");
   4063                                     assert(ios.width() == 0);
   4064                                 }
   4065                                 ios.width(25);
   4066                                 left(ios);
   4067                                 {
   4068                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4069                                     std::string ex(str, iter.base());
   4070                                     assert(ex == "+1E+09*******************");
   4071                                     assert(ios.width() == 0);
   4072                                 }
   4073                                 ios.width(25);
   4074                                 right(ios);
   4075                                 {
   4076                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4077                                     std::string ex(str, iter.base());
   4078                                     assert(ex == "*******************+1E+09");
   4079                                     assert(ios.width() == 0);
   4080                                 }
   4081                                 ios.width(25);
   4082                                 internal(ios);
   4083                                 {
   4084                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4085                                     std::string ex(str, iter.base());
   4086                                     assert(ex == "+*******************1E+09");
   4087                                     assert(ios.width() == 0);
   4088                                 }
   4089                             }
   4090                             ios.imbue(lg);
   4091                             {
   4092                                 ios.width(0);
   4093                                 {
   4094                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4095                                     std::string ex(str, iter.base());
   4096                                     assert(ex == "+1E+09");
   4097                                     assert(ios.width() == 0);
   4098                                 }
   4099                                 ios.width(25);
   4100                                 left(ios);
   4101                                 {
   4102                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4103                                     std::string ex(str, iter.base());
   4104                                     assert(ex == "+1E+09*******************");
   4105                                     assert(ios.width() == 0);
   4106                                 }
   4107                                 ios.width(25);
   4108                                 right(ios);
   4109                                 {
   4110                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4111                                     std::string ex(str, iter.base());
   4112                                     assert(ex == "*******************+1E+09");
   4113                                     assert(ios.width() == 0);
   4114                                 }
   4115                                 ios.width(25);
   4116                                 internal(ios);
   4117                                 {
   4118                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4119                                     std::string ex(str, iter.base());
   4120                                     assert(ex == "+*******************1E+09");
   4121                                     assert(ios.width() == 0);
   4122                                 }
   4123                             }
   4124                         }
   4125                         showpoint(ios);
   4126                         {
   4127                             ios.imbue(lc);
   4128                             {
   4129                                 ios.width(0);
   4130                                 {
   4131                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4132                                     std::string ex(str, iter.base());
   4133                                     assert(ex == "+1.E+09");
   4134                                     assert(ios.width() == 0);
   4135                                 }
   4136                                 ios.width(25);
   4137                                 left(ios);
   4138                                 {
   4139                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4140                                     std::string ex(str, iter.base());
   4141                                     assert(ex == "+1.E+09******************");
   4142                                     assert(ios.width() == 0);
   4143                                 }
   4144                                 ios.width(25);
   4145                                 right(ios);
   4146                                 {
   4147                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4148                                     std::string ex(str, iter.base());
   4149                                     assert(ex == "******************+1.E+09");
   4150                                     assert(ios.width() == 0);
   4151                                 }
   4152                                 ios.width(25);
   4153                                 internal(ios);
   4154                                 {
   4155                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4156                                     std::string ex(str, iter.base());
   4157                                     assert(ex == "+******************1.E+09");
   4158                                     assert(ios.width() == 0);
   4159                                 }
   4160                             }
   4161                             ios.imbue(lg);
   4162                             {
   4163                                 ios.width(0);
   4164                                 {
   4165                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4166                                     std::string ex(str, iter.base());
   4167                                     assert(ex == "+1;E+09");
   4168                                     assert(ios.width() == 0);
   4169                                 }
   4170                                 ios.width(25);
   4171                                 left(ios);
   4172                                 {
   4173                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4174                                     std::string ex(str, iter.base());
   4175                                     assert(ex == "+1;E+09******************");
   4176                                     assert(ios.width() == 0);
   4177                                 }
   4178                                 ios.width(25);
   4179                                 right(ios);
   4180                                 {
   4181                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4182                                     std::string ex(str, iter.base());
   4183                                     assert(ex == "******************+1;E+09");
   4184                                     assert(ios.width() == 0);
   4185                                 }
   4186                                 ios.width(25);
   4187                                 internal(ios);
   4188                                 {
   4189                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4190                                     std::string ex(str, iter.base());
   4191                                     assert(ex == "+******************1;E+09");
   4192                                     assert(ios.width() == 0);
   4193                                 }
   4194                             }
   4195                         }
   4196                     }
   4197                 }
   4198             }
   4199             ios.precision(6);
   4200             {
   4201                 nouppercase(ios);
   4202                 {
   4203                     noshowpos(ios);
   4204                     {
   4205                         noshowpoint(ios);
   4206                         {
   4207                             ios.imbue(lc);
   4208                             {
   4209                                 ios.width(0);
   4210                                 {
   4211                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4212                                     std::string ex(str, iter.base());
   4213                                     assert(ex == "1.23457e+09");
   4214                                     assert(ios.width() == 0);
   4215                                 }
   4216                                 ios.width(25);
   4217                                 left(ios);
   4218                                 {
   4219                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4220                                     std::string ex(str, iter.base());
   4221                                     assert(ex == "1.23457e+09**************");
   4222                                     assert(ios.width() == 0);
   4223                                 }
   4224                                 ios.width(25);
   4225                                 right(ios);
   4226                                 {
   4227                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4228                                     std::string ex(str, iter.base());
   4229                                     assert(ex == "**************1.23457e+09");
   4230                                     assert(ios.width() == 0);
   4231                                 }
   4232                                 ios.width(25);
   4233                                 internal(ios);
   4234                                 {
   4235                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4236                                     std::string ex(str, iter.base());
   4237                                     assert(ex == "**************1.23457e+09");
   4238                                     assert(ios.width() == 0);
   4239                                 }
   4240                             }
   4241                             ios.imbue(lg);
   4242                             {
   4243                                 ios.width(0);
   4244                                 {
   4245                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4246                                     std::string ex(str, iter.base());
   4247                                     assert(ex == "1;23457e+09");
   4248                                     assert(ios.width() == 0);
   4249                                 }
   4250                                 ios.width(25);
   4251                                 left(ios);
   4252                                 {
   4253                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4254                                     std::string ex(str, iter.base());
   4255                                     assert(ex == "1;23457e+09**************");
   4256                                     assert(ios.width() == 0);
   4257                                 }
   4258                                 ios.width(25);
   4259                                 right(ios);
   4260                                 {
   4261                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4262                                     std::string ex(str, iter.base());
   4263                                     assert(ex == "**************1;23457e+09");
   4264                                     assert(ios.width() == 0);
   4265                                 }
   4266                                 ios.width(25);
   4267                                 internal(ios);
   4268                                 {
   4269                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4270                                     std::string ex(str, iter.base());
   4271                                     assert(ex == "**************1;23457e+09");
   4272                                     assert(ios.width() == 0);
   4273                                 }
   4274                             }
   4275                         }
   4276                         showpoint(ios);
   4277                         {
   4278                             ios.imbue(lc);
   4279                             {
   4280                                 ios.width(0);
   4281                                 {
   4282                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4283                                     std::string ex(str, iter.base());
   4284                                     assert(ex == "1.23457e+09");
   4285                                     assert(ios.width() == 0);
   4286                                 }
   4287                                 ios.width(25);
   4288                                 left(ios);
   4289                                 {
   4290                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4291                                     std::string ex(str, iter.base());
   4292                                     assert(ex == "1.23457e+09**************");
   4293                                     assert(ios.width() == 0);
   4294                                 }
   4295                                 ios.width(25);
   4296                                 right(ios);
   4297                                 {
   4298                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4299                                     std::string ex(str, iter.base());
   4300                                     assert(ex == "**************1.23457e+09");
   4301                                     assert(ios.width() == 0);
   4302                                 }
   4303                                 ios.width(25);
   4304                                 internal(ios);
   4305                                 {
   4306                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4307                                     std::string ex(str, iter.base());
   4308                                     assert(ex == "**************1.23457e+09");
   4309                                     assert(ios.width() == 0);
   4310                                 }
   4311                             }
   4312                             ios.imbue(lg);
   4313                             {
   4314                                 ios.width(0);
   4315                                 {
   4316                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4317                                     std::string ex(str, iter.base());
   4318                                     assert(ex == "1;23457e+09");
   4319                                     assert(ios.width() == 0);
   4320                                 }
   4321                                 ios.width(25);
   4322                                 left(ios);
   4323                                 {
   4324                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4325                                     std::string ex(str, iter.base());
   4326                                     assert(ex == "1;23457e+09**************");
   4327                                     assert(ios.width() == 0);
   4328                                 }
   4329                                 ios.width(25);
   4330                                 right(ios);
   4331                                 {
   4332                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4333                                     std::string ex(str, iter.base());
   4334                                     assert(ex == "**************1;23457e+09");
   4335                                     assert(ios.width() == 0);
   4336                                 }
   4337                                 ios.width(25);
   4338                                 internal(ios);
   4339                                 {
   4340                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4341                                     std::string ex(str, iter.base());
   4342                                     assert(ex == "**************1;23457e+09");
   4343                                     assert(ios.width() == 0);
   4344                                 }
   4345                             }
   4346                         }
   4347                     }
   4348                     showpos(ios);
   4349                     {
   4350                         noshowpoint(ios);
   4351                         {
   4352                             ios.imbue(lc);
   4353                             {
   4354                                 ios.width(0);
   4355                                 {
   4356                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4357                                     std::string ex(str, iter.base());
   4358                                     assert(ex == "+1.23457e+09");
   4359                                     assert(ios.width() == 0);
   4360                                 }
   4361                                 ios.width(25);
   4362                                 left(ios);
   4363                                 {
   4364                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4365                                     std::string ex(str, iter.base());
   4366                                     assert(ex == "+1.23457e+09*************");
   4367                                     assert(ios.width() == 0);
   4368                                 }
   4369                                 ios.width(25);
   4370                                 right(ios);
   4371                                 {
   4372                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4373                                     std::string ex(str, iter.base());
   4374                                     assert(ex == "*************+1.23457e+09");
   4375                                     assert(ios.width() == 0);
   4376                                 }
   4377                                 ios.width(25);
   4378                                 internal(ios);
   4379                                 {
   4380                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4381                                     std::string ex(str, iter.base());
   4382                                     assert(ex == "+*************1.23457e+09");
   4383                                     assert(ios.width() == 0);
   4384                                 }
   4385                             }
   4386                             ios.imbue(lg);
   4387                             {
   4388                                 ios.width(0);
   4389                                 {
   4390                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4391                                     std::string ex(str, iter.base());
   4392                                     assert(ex == "+1;23457e+09");
   4393                                     assert(ios.width() == 0);
   4394                                 }
   4395                                 ios.width(25);
   4396                                 left(ios);
   4397                                 {
   4398                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4399                                     std::string ex(str, iter.base());
   4400                                     assert(ex == "+1;23457e+09*************");
   4401                                     assert(ios.width() == 0);
   4402                                 }
   4403                                 ios.width(25);
   4404                                 right(ios);
   4405                                 {
   4406                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4407                                     std::string ex(str, iter.base());
   4408                                     assert(ex == "*************+1;23457e+09");
   4409                                     assert(ios.width() == 0);
   4410                                 }
   4411                                 ios.width(25);
   4412                                 internal(ios);
   4413                                 {
   4414                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4415                                     std::string ex(str, iter.base());
   4416                                     assert(ex == "+*************1;23457e+09");
   4417                                     assert(ios.width() == 0);
   4418                                 }
   4419                             }
   4420                         }
   4421                         showpoint(ios);
   4422                         {
   4423                             ios.imbue(lc);
   4424                             {
   4425                                 ios.width(0);
   4426                                 {
   4427                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4428                                     std::string ex(str, iter.base());
   4429                                     assert(ex == "+1.23457e+09");
   4430                                     assert(ios.width() == 0);
   4431                                 }
   4432                                 ios.width(25);
   4433                                 left(ios);
   4434                                 {
   4435                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4436                                     std::string ex(str, iter.base());
   4437                                     assert(ex == "+1.23457e+09*************");
   4438                                     assert(ios.width() == 0);
   4439                                 }
   4440                                 ios.width(25);
   4441                                 right(ios);
   4442                                 {
   4443                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4444                                     std::string ex(str, iter.base());
   4445                                     assert(ex == "*************+1.23457e+09");
   4446                                     assert(ios.width() == 0);
   4447                                 }
   4448                                 ios.width(25);
   4449                                 internal(ios);
   4450                                 {
   4451                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4452                                     std::string ex(str, iter.base());
   4453                                     assert(ex == "+*************1.23457e+09");
   4454                                     assert(ios.width() == 0);
   4455                                 }
   4456                             }
   4457                             ios.imbue(lg);
   4458                             {
   4459                                 ios.width(0);
   4460                                 {
   4461                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4462                                     std::string ex(str, iter.base());
   4463                                     assert(ex == "+1;23457e+09");
   4464                                     assert(ios.width() == 0);
   4465                                 }
   4466                                 ios.width(25);
   4467                                 left(ios);
   4468                                 {
   4469                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4470                                     std::string ex(str, iter.base());
   4471                                     assert(ex == "+1;23457e+09*************");
   4472                                     assert(ios.width() == 0);
   4473                                 }
   4474                                 ios.width(25);
   4475                                 right(ios);
   4476                                 {
   4477                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4478                                     std::string ex(str, iter.base());
   4479                                     assert(ex == "*************+1;23457e+09");
   4480                                     assert(ios.width() == 0);
   4481                                 }
   4482                                 ios.width(25);
   4483                                 internal(ios);
   4484                                 {
   4485                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4486                                     std::string ex(str, iter.base());
   4487                                     assert(ex == "+*************1;23457e+09");
   4488                                     assert(ios.width() == 0);
   4489                                 }
   4490                             }
   4491                         }
   4492                     }
   4493                 }
   4494                 uppercase(ios);
   4495                 {
   4496                     noshowpos(ios);
   4497                     {
   4498                         noshowpoint(ios);
   4499                         {
   4500                             ios.imbue(lc);
   4501                             {
   4502                                 ios.width(0);
   4503                                 {
   4504                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4505                                     std::string ex(str, iter.base());
   4506                                     assert(ex == "1.23457E+09");
   4507                                     assert(ios.width() == 0);
   4508                                 }
   4509                                 ios.width(25);
   4510                                 left(ios);
   4511                                 {
   4512                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4513                                     std::string ex(str, iter.base());
   4514                                     assert(ex == "1.23457E+09**************");
   4515                                     assert(ios.width() == 0);
   4516                                 }
   4517                                 ios.width(25);
   4518                                 right(ios);
   4519                                 {
   4520                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4521                                     std::string ex(str, iter.base());
   4522                                     assert(ex == "**************1.23457E+09");
   4523                                     assert(ios.width() == 0);
   4524                                 }
   4525                                 ios.width(25);
   4526                                 internal(ios);
   4527                                 {
   4528                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4529                                     std::string ex(str, iter.base());
   4530                                     assert(ex == "**************1.23457E+09");
   4531                                     assert(ios.width() == 0);
   4532                                 }
   4533                             }
   4534                             ios.imbue(lg);
   4535                             {
   4536                                 ios.width(0);
   4537                                 {
   4538                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4539                                     std::string ex(str, iter.base());
   4540                                     assert(ex == "1;23457E+09");
   4541                                     assert(ios.width() == 0);
   4542                                 }
   4543                                 ios.width(25);
   4544                                 left(ios);
   4545                                 {
   4546                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4547                                     std::string ex(str, iter.base());
   4548                                     assert(ex == "1;23457E+09**************");
   4549                                     assert(ios.width() == 0);
   4550                                 }
   4551                                 ios.width(25);
   4552                                 right(ios);
   4553                                 {
   4554                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4555                                     std::string ex(str, iter.base());
   4556                                     assert(ex == "**************1;23457E+09");
   4557                                     assert(ios.width() == 0);
   4558                                 }
   4559                                 ios.width(25);
   4560                                 internal(ios);
   4561                                 {
   4562                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4563                                     std::string ex(str, iter.base());
   4564                                     assert(ex == "**************1;23457E+09");
   4565                                     assert(ios.width() == 0);
   4566                                 }
   4567                             }
   4568                         }
   4569                         showpoint(ios);
   4570                         {
   4571                             ios.imbue(lc);
   4572                             {
   4573                                 ios.width(0);
   4574                                 {
   4575                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4576                                     std::string ex(str, iter.base());
   4577                                     assert(ex == "1.23457E+09");
   4578                                     assert(ios.width() == 0);
   4579                                 }
   4580                                 ios.width(25);
   4581                                 left(ios);
   4582                                 {
   4583                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4584                                     std::string ex(str, iter.base());
   4585                                     assert(ex == "1.23457E+09**************");
   4586                                     assert(ios.width() == 0);
   4587                                 }
   4588                                 ios.width(25);
   4589                                 right(ios);
   4590                                 {
   4591                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4592                                     std::string ex(str, iter.base());
   4593                                     assert(ex == "**************1.23457E+09");
   4594                                     assert(ios.width() == 0);
   4595                                 }
   4596                                 ios.width(25);
   4597                                 internal(ios);
   4598                                 {
   4599                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4600                                     std::string ex(str, iter.base());
   4601                                     assert(ex == "**************1.23457E+09");
   4602                                     assert(ios.width() == 0);
   4603                                 }
   4604                             }
   4605                             ios.imbue(lg);
   4606                             {
   4607                                 ios.width(0);
   4608                                 {
   4609                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4610                                     std::string ex(str, iter.base());
   4611                                     assert(ex == "1;23457E+09");
   4612                                     assert(ios.width() == 0);
   4613                                 }
   4614                                 ios.width(25);
   4615                                 left(ios);
   4616                                 {
   4617                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4618                                     std::string ex(str, iter.base());
   4619                                     assert(ex == "1;23457E+09**************");
   4620                                     assert(ios.width() == 0);
   4621                                 }
   4622                                 ios.width(25);
   4623                                 right(ios);
   4624                                 {
   4625                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4626                                     std::string ex(str, iter.base());
   4627                                     assert(ex == "**************1;23457E+09");
   4628                                     assert(ios.width() == 0);
   4629                                 }
   4630                                 ios.width(25);
   4631                                 internal(ios);
   4632                                 {
   4633                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4634                                     std::string ex(str, iter.base());
   4635                                     assert(ex == "**************1;23457E+09");
   4636                                     assert(ios.width() == 0);
   4637                                 }
   4638                             }
   4639                         }
   4640                     }
   4641                     showpos(ios);
   4642                     {
   4643                         noshowpoint(ios);
   4644                         {
   4645                             ios.imbue(lc);
   4646                             {
   4647                                 ios.width(0);
   4648                                 {
   4649                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4650                                     std::string ex(str, iter.base());
   4651                                     assert(ex == "+1.23457E+09");
   4652                                     assert(ios.width() == 0);
   4653                                 }
   4654                                 ios.width(25);
   4655                                 left(ios);
   4656                                 {
   4657                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4658                                     std::string ex(str, iter.base());
   4659                                     assert(ex == "+1.23457E+09*************");
   4660                                     assert(ios.width() == 0);
   4661                                 }
   4662                                 ios.width(25);
   4663                                 right(ios);
   4664                                 {
   4665                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4666                                     std::string ex(str, iter.base());
   4667                                     assert(ex == "*************+1.23457E+09");
   4668                                     assert(ios.width() == 0);
   4669                                 }
   4670                                 ios.width(25);
   4671                                 internal(ios);
   4672                                 {
   4673                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4674                                     std::string ex(str, iter.base());
   4675                                     assert(ex == "+*************1.23457E+09");
   4676                                     assert(ios.width() == 0);
   4677                                 }
   4678                             }
   4679                             ios.imbue(lg);
   4680                             {
   4681                                 ios.width(0);
   4682                                 {
   4683                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4684                                     std::string ex(str, iter.base());
   4685                                     assert(ex == "+1;23457E+09");
   4686                                     assert(ios.width() == 0);
   4687                                 }
   4688                                 ios.width(25);
   4689                                 left(ios);
   4690                                 {
   4691                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4692                                     std::string ex(str, iter.base());
   4693                                     assert(ex == "+1;23457E+09*************");
   4694                                     assert(ios.width() == 0);
   4695                                 }
   4696                                 ios.width(25);
   4697                                 right(ios);
   4698                                 {
   4699                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4700                                     std::string ex(str, iter.base());
   4701                                     assert(ex == "*************+1;23457E+09");
   4702                                     assert(ios.width() == 0);
   4703                                 }
   4704                                 ios.width(25);
   4705                                 internal(ios);
   4706                                 {
   4707                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4708                                     std::string ex(str, iter.base());
   4709                                     assert(ex == "+*************1;23457E+09");
   4710                                     assert(ios.width() == 0);
   4711                                 }
   4712                             }
   4713                         }
   4714                         showpoint(ios);
   4715                         {
   4716                             ios.imbue(lc);
   4717                             {
   4718                                 ios.width(0);
   4719                                 {
   4720                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4721                                     std::string ex(str, iter.base());
   4722                                     assert(ex == "+1.23457E+09");
   4723                                     assert(ios.width() == 0);
   4724                                 }
   4725                                 ios.width(25);
   4726                                 left(ios);
   4727                                 {
   4728                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4729                                     std::string ex(str, iter.base());
   4730                                     assert(ex == "+1.23457E+09*************");
   4731                                     assert(ios.width() == 0);
   4732                                 }
   4733                                 ios.width(25);
   4734                                 right(ios);
   4735                                 {
   4736                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4737                                     std::string ex(str, iter.base());
   4738                                     assert(ex == "*************+1.23457E+09");
   4739                                     assert(ios.width() == 0);
   4740                                 }
   4741                                 ios.width(25);
   4742                                 internal(ios);
   4743                                 {
   4744                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4745                                     std::string ex(str, iter.base());
   4746                                     assert(ex == "+*************1.23457E+09");
   4747                                     assert(ios.width() == 0);
   4748                                 }
   4749                             }
   4750                             ios.imbue(lg);
   4751                             {
   4752                                 ios.width(0);
   4753                                 {
   4754                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4755                                     std::string ex(str, iter.base());
   4756                                     assert(ex == "+1;23457E+09");
   4757                                     assert(ios.width() == 0);
   4758                                 }
   4759                                 ios.width(25);
   4760                                 left(ios);
   4761                                 {
   4762                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4763                                     std::string ex(str, iter.base());
   4764                                     assert(ex == "+1;23457E+09*************");
   4765                                     assert(ios.width() == 0);
   4766                                 }
   4767                                 ios.width(25);
   4768                                 right(ios);
   4769                                 {
   4770                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4771                                     std::string ex(str, iter.base());
   4772                                     assert(ex == "*************+1;23457E+09");
   4773                                     assert(ios.width() == 0);
   4774                                 }
   4775                                 ios.width(25);
   4776                                 internal(ios);
   4777                                 {
   4778                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4779                                     std::string ex(str, iter.base());
   4780                                     assert(ex == "+*************1;23457E+09");
   4781                                     assert(ios.width() == 0);
   4782                                 }
   4783                             }
   4784                         }
   4785                     }
   4786                 }
   4787             }
   4788             ios.precision(16);
   4789             {
   4790                 nouppercase(ios);
   4791                 {
   4792                     noshowpos(ios);
   4793                     {
   4794                         noshowpoint(ios);
   4795                         {
   4796                             ios.imbue(lc);
   4797                             {
   4798                                 ios.width(0);
   4799                                 {
   4800                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4801                                     std::string ex(str, iter.base());
   4802                                     assert(ex == "1234567890.125");
   4803                                     assert(ios.width() == 0);
   4804                                 }
   4805                                 ios.width(25);
   4806                                 left(ios);
   4807                                 {
   4808                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4809                                     std::string ex(str, iter.base());
   4810                                     assert(ex == "1234567890.125***********");
   4811                                     assert(ios.width() == 0);
   4812                                 }
   4813                                 ios.width(25);
   4814                                 right(ios);
   4815                                 {
   4816                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4817                                     std::string ex(str, iter.base());
   4818                                     assert(ex == "***********1234567890.125");
   4819                                     assert(ios.width() == 0);
   4820                                 }
   4821                                 ios.width(25);
   4822                                 internal(ios);
   4823                                 {
   4824                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4825                                     std::string ex(str, iter.base());
   4826                                     assert(ex == "***********1234567890.125");
   4827                                     assert(ios.width() == 0);
   4828                                 }
   4829                             }
   4830                             ios.imbue(lg);
   4831                             {
   4832                                 ios.width(0);
   4833                                 {
   4834                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4835                                     std::string ex(str, iter.base());
   4836                                     assert(ex == "1_234_567_89_0;125");
   4837                                     assert(ios.width() == 0);
   4838                                 }
   4839                                 ios.width(25);
   4840                                 left(ios);
   4841                                 {
   4842                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4843                                     std::string ex(str, iter.base());
   4844                                     assert(ex == "1_234_567_89_0;125*******");
   4845                                     assert(ios.width() == 0);
   4846                                 }
   4847                                 ios.width(25);
   4848                                 right(ios);
   4849                                 {
   4850                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4851                                     std::string ex(str, iter.base());
   4852                                     assert(ex == "*******1_234_567_89_0;125");
   4853                                     assert(ios.width() == 0);
   4854                                 }
   4855                                 ios.width(25);
   4856                                 internal(ios);
   4857                                 {
   4858                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4859                                     std::string ex(str, iter.base());
   4860                                     assert(ex == "*******1_234_567_89_0;125");
   4861                                     assert(ios.width() == 0);
   4862                                 }
   4863                             }
   4864                         }
   4865                         showpoint(ios);
   4866                         {
   4867                             ios.imbue(lc);
   4868                             {
   4869                                 ios.width(0);
   4870                                 {
   4871                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4872                                     std::string ex(str, iter.base());
   4873                                     assert(ex == "1234567890.125000");
   4874                                     assert(ios.width() == 0);
   4875                                 }
   4876                                 ios.width(25);
   4877                                 left(ios);
   4878                                 {
   4879                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4880                                     std::string ex(str, iter.base());
   4881                                     assert(ex == "1234567890.125000********");
   4882                                     assert(ios.width() == 0);
   4883                                 }
   4884                                 ios.width(25);
   4885                                 right(ios);
   4886                                 {
   4887                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4888                                     std::string ex(str, iter.base());
   4889                                     assert(ex == "********1234567890.125000");
   4890                                     assert(ios.width() == 0);
   4891                                 }
   4892                                 ios.width(25);
   4893                                 internal(ios);
   4894                                 {
   4895                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4896                                     std::string ex(str, iter.base());
   4897                                     assert(ex == "********1234567890.125000");
   4898                                     assert(ios.width() == 0);
   4899                                 }
   4900                             }
   4901                             ios.imbue(lg);
   4902                             {
   4903                                 ios.width(0);
   4904                                 {
   4905                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4906                                     std::string ex(str, iter.base());
   4907                                     assert(ex == "1_234_567_89_0;125000");
   4908                                     assert(ios.width() == 0);
   4909                                 }
   4910                                 ios.width(25);
   4911                                 left(ios);
   4912                                 {
   4913                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4914                                     std::string ex(str, iter.base());
   4915                                     assert(ex == "1_234_567_89_0;125000****");
   4916                                     assert(ios.width() == 0);
   4917                                 }
   4918                                 ios.width(25);
   4919                                 right(ios);
   4920                                 {
   4921                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4922                                     std::string ex(str, iter.base());
   4923                                     assert(ex == "****1_234_567_89_0;125000");
   4924                                     assert(ios.width() == 0);
   4925                                 }
   4926                                 ios.width(25);
   4927                                 internal(ios);
   4928                                 {
   4929                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4930                                     std::string ex(str, iter.base());
   4931                                     assert(ex == "****1_234_567_89_0;125000");
   4932                                     assert(ios.width() == 0);
   4933                                 }
   4934                             }
   4935                         }
   4936                     }
   4937                     showpos(ios);
   4938                     {
   4939                         noshowpoint(ios);
   4940                         {
   4941                             ios.imbue(lc);
   4942                             {
   4943                                 ios.width(0);
   4944                                 {
   4945                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4946                                     std::string ex(str, iter.base());
   4947                                     assert(ex == "+1234567890.125");
   4948                                     assert(ios.width() == 0);
   4949                                 }
   4950                                 ios.width(25);
   4951                                 left(ios);
   4952                                 {
   4953                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4954                                     std::string ex(str, iter.base());
   4955                                     assert(ex == "+1234567890.125**********");
   4956                                     assert(ios.width() == 0);
   4957                                 }
   4958                                 ios.width(25);
   4959                                 right(ios);
   4960                                 {
   4961                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4962                                     std::string ex(str, iter.base());
   4963                                     assert(ex == "**********+1234567890.125");
   4964                                     assert(ios.width() == 0);
   4965                                 }
   4966                                 ios.width(25);
   4967                                 internal(ios);
   4968                                 {
   4969                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4970                                     std::string ex(str, iter.base());
   4971                                     assert(ex == "+**********1234567890.125");
   4972                                     assert(ios.width() == 0);
   4973                                 }
   4974                             }
   4975                             ios.imbue(lg);
   4976                             {
   4977                                 ios.width(0);
   4978                                 {
   4979                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4980                                     std::string ex(str, iter.base());
   4981                                     assert(ex == "+1_234_567_89_0;125");
   4982                                     assert(ios.width() == 0);
   4983                                 }
   4984                                 ios.width(25);
   4985                                 left(ios);
   4986                                 {
   4987                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4988                                     std::string ex(str, iter.base());
   4989                                     assert(ex == "+1_234_567_89_0;125******");
   4990                                     assert(ios.width() == 0);
   4991                                 }
   4992                                 ios.width(25);
   4993                                 right(ios);
   4994                                 {
   4995                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   4996                                     std::string ex(str, iter.base());
   4997                                     assert(ex == "******+1_234_567_89_0;125");
   4998                                     assert(ios.width() == 0);
   4999                                 }
   5000                                 ios.width(25);
   5001                                 internal(ios);
   5002                                 {
   5003                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5004                                     std::string ex(str, iter.base());
   5005                                     assert(ex == "+******1_234_567_89_0;125");
   5006                                     assert(ios.width() == 0);
   5007                                 }
   5008                             }
   5009                         }
   5010                         showpoint(ios);
   5011                         {
   5012                             ios.imbue(lc);
   5013                             {
   5014                                 ios.width(0);
   5015                                 {
   5016                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5017                                     std::string ex(str, iter.base());
   5018                                     assert(ex == "+1234567890.125000");
   5019                                     assert(ios.width() == 0);
   5020                                 }
   5021                                 ios.width(25);
   5022                                 left(ios);
   5023                                 {
   5024                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5025                                     std::string ex(str, iter.base());
   5026                                     assert(ex == "+1234567890.125000*******");
   5027                                     assert(ios.width() == 0);
   5028                                 }
   5029                                 ios.width(25);
   5030                                 right(ios);
   5031                                 {
   5032                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5033                                     std::string ex(str, iter.base());
   5034                                     assert(ex == "*******+1234567890.125000");
   5035                                     assert(ios.width() == 0);
   5036                                 }
   5037                                 ios.width(25);
   5038                                 internal(ios);
   5039                                 {
   5040                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5041                                     std::string ex(str, iter.base());
   5042                                     assert(ex == "+*******1234567890.125000");
   5043                                     assert(ios.width() == 0);
   5044                                 }
   5045                             }
   5046                             ios.imbue(lg);
   5047                             {
   5048                                 ios.width(0);
   5049                                 {
   5050                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5051                                     std::string ex(str, iter.base());
   5052                                     assert(ex == "+1_234_567_89_0;125000");
   5053                                     assert(ios.width() == 0);
   5054                                 }
   5055                                 ios.width(25);
   5056                                 left(ios);
   5057                                 {
   5058                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5059                                     std::string ex(str, iter.base());
   5060                                     assert(ex == "+1_234_567_89_0;125000***");
   5061                                     assert(ios.width() == 0);
   5062                                 }
   5063                                 ios.width(25);
   5064                                 right(ios);
   5065                                 {
   5066                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5067                                     std::string ex(str, iter.base());
   5068                                     assert(ex == "***+1_234_567_89_0;125000");
   5069                                     assert(ios.width() == 0);
   5070                                 }
   5071                                 ios.width(25);
   5072                                 internal(ios);
   5073                                 {
   5074                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5075                                     std::string ex(str, iter.base());
   5076                                     assert(ex == "+***1_234_567_89_0;125000");
   5077                                     assert(ios.width() == 0);
   5078                                 }
   5079                             }
   5080                         }
   5081                     }
   5082                 }
   5083                 uppercase(ios);
   5084                 {
   5085                     noshowpos(ios);
   5086                     {
   5087                         noshowpoint(ios);
   5088                         {
   5089                             ios.imbue(lc);
   5090                             {
   5091                                 ios.width(0);
   5092                                 {
   5093                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5094                                     std::string ex(str, iter.base());
   5095                                     assert(ex == "1234567890.125");
   5096                                     assert(ios.width() == 0);
   5097                                 }
   5098                                 ios.width(25);
   5099                                 left(ios);
   5100                                 {
   5101                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5102                                     std::string ex(str, iter.base());
   5103                                     assert(ex == "1234567890.125***********");
   5104                                     assert(ios.width() == 0);
   5105                                 }
   5106                                 ios.width(25);
   5107                                 right(ios);
   5108                                 {
   5109                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5110                                     std::string ex(str, iter.base());
   5111                                     assert(ex == "***********1234567890.125");
   5112                                     assert(ios.width() == 0);
   5113                                 }
   5114                                 ios.width(25);
   5115                                 internal(ios);
   5116                                 {
   5117                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5118                                     std::string ex(str, iter.base());
   5119                                     assert(ex == "***********1234567890.125");
   5120                                     assert(ios.width() == 0);
   5121                                 }
   5122                             }
   5123                             ios.imbue(lg);
   5124                             {
   5125                                 ios.width(0);
   5126                                 {
   5127                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5128                                     std::string ex(str, iter.base());
   5129                                     assert(ex == "1_234_567_89_0;125");
   5130                                     assert(ios.width() == 0);
   5131                                 }
   5132                                 ios.width(25);
   5133                                 left(ios);
   5134                                 {
   5135                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5136                                     std::string ex(str, iter.base());
   5137                                     assert(ex == "1_234_567_89_0;125*******");
   5138                                     assert(ios.width() == 0);
   5139                                 }
   5140                                 ios.width(25);
   5141                                 right(ios);
   5142                                 {
   5143                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5144                                     std::string ex(str, iter.base());
   5145                                     assert(ex == "*******1_234_567_89_0;125");
   5146                                     assert(ios.width() == 0);
   5147                                 }
   5148                                 ios.width(25);
   5149                                 internal(ios);
   5150                                 {
   5151                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5152                                     std::string ex(str, iter.base());
   5153                                     assert(ex == "*******1_234_567_89_0;125");
   5154                                     assert(ios.width() == 0);
   5155                                 }
   5156                             }
   5157                         }
   5158                         showpoint(ios);
   5159                         {
   5160                             ios.imbue(lc);
   5161                             {
   5162                                 ios.width(0);
   5163                                 {
   5164                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5165                                     std::string ex(str, iter.base());
   5166                                     assert(ex == "1234567890.125000");
   5167                                     assert(ios.width() == 0);
   5168                                 }
   5169                                 ios.width(25);
   5170                                 left(ios);
   5171                                 {
   5172                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5173                                     std::string ex(str, iter.base());
   5174                                     assert(ex == "1234567890.125000********");
   5175                                     assert(ios.width() == 0);
   5176                                 }
   5177                                 ios.width(25);
   5178                                 right(ios);
   5179                                 {
   5180                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5181                                     std::string ex(str, iter.base());
   5182                                     assert(ex == "********1234567890.125000");
   5183                                     assert(ios.width() == 0);
   5184                                 }
   5185                                 ios.width(25);
   5186                                 internal(ios);
   5187                                 {
   5188                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5189                                     std::string ex(str, iter.base());
   5190                                     assert(ex == "********1234567890.125000");
   5191                                     assert(ios.width() == 0);
   5192                                 }
   5193                             }
   5194                             ios.imbue(lg);
   5195                             {
   5196                                 ios.width(0);
   5197                                 {
   5198                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5199                                     std::string ex(str, iter.base());
   5200                                     assert(ex == "1_234_567_89_0;125000");
   5201                                     assert(ios.width() == 0);
   5202                                 }
   5203                                 ios.width(25);
   5204                                 left(ios);
   5205                                 {
   5206                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5207                                     std::string ex(str, iter.base());
   5208                                     assert(ex == "1_234_567_89_0;125000****");
   5209                                     assert(ios.width() == 0);
   5210                                 }
   5211                                 ios.width(25);
   5212                                 right(ios);
   5213                                 {
   5214                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5215                                     std::string ex(str, iter.base());
   5216                                     assert(ex == "****1_234_567_89_0;125000");
   5217                                     assert(ios.width() == 0);
   5218                                 }
   5219                                 ios.width(25);
   5220                                 internal(ios);
   5221                                 {
   5222                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5223                                     std::string ex(str, iter.base());
   5224                                     assert(ex == "****1_234_567_89_0;125000");
   5225                                     assert(ios.width() == 0);
   5226                                 }
   5227                             }
   5228                         }
   5229                     }
   5230                     showpos(ios);
   5231                     {
   5232                         noshowpoint(ios);
   5233                         {
   5234                             ios.imbue(lc);
   5235                             {
   5236                                 ios.width(0);
   5237                                 {
   5238                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5239                                     std::string ex(str, iter.base());
   5240                                     assert(ex == "+1234567890.125");
   5241                                     assert(ios.width() == 0);
   5242                                 }
   5243                                 ios.width(25);
   5244                                 left(ios);
   5245                                 {
   5246                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5247                                     std::string ex(str, iter.base());
   5248                                     assert(ex == "+1234567890.125**********");
   5249                                     assert(ios.width() == 0);
   5250                                 }
   5251                                 ios.width(25);
   5252                                 right(ios);
   5253                                 {
   5254                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5255                                     std::string ex(str, iter.base());
   5256                                     assert(ex == "**********+1234567890.125");
   5257                                     assert(ios.width() == 0);
   5258                                 }
   5259                                 ios.width(25);
   5260                                 internal(ios);
   5261                                 {
   5262                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5263                                     std::string ex(str, iter.base());
   5264                                     assert(ex == "+**********1234567890.125");
   5265                                     assert(ios.width() == 0);
   5266                                 }
   5267                             }
   5268                             ios.imbue(lg);
   5269                             {
   5270                                 ios.width(0);
   5271                                 {
   5272                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5273                                     std::string ex(str, iter.base());
   5274                                     assert(ex == "+1_234_567_89_0;125");
   5275                                     assert(ios.width() == 0);
   5276                                 }
   5277                                 ios.width(25);
   5278                                 left(ios);
   5279                                 {
   5280                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5281                                     std::string ex(str, iter.base());
   5282                                     assert(ex == "+1_234_567_89_0;125******");
   5283                                     assert(ios.width() == 0);
   5284                                 }
   5285                                 ios.width(25);
   5286                                 right(ios);
   5287                                 {
   5288                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5289                                     std::string ex(str, iter.base());
   5290                                     assert(ex == "******+1_234_567_89_0;125");
   5291                                     assert(ios.width() == 0);
   5292                                 }
   5293                                 ios.width(25);
   5294                                 internal(ios);
   5295                                 {
   5296                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5297                                     std::string ex(str, iter.base());
   5298                                     assert(ex == "+******1_234_567_89_0;125");
   5299                                     assert(ios.width() == 0);
   5300                                 }
   5301                             }
   5302                         }
   5303                         showpoint(ios);
   5304                         {
   5305                             ios.imbue(lc);
   5306                             {
   5307                                 ios.width(0);
   5308                                 {
   5309                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5310                                     std::string ex(str, iter.base());
   5311                                     assert(ex == "+1234567890.125000");
   5312                                     assert(ios.width() == 0);
   5313                                 }
   5314                                 ios.width(25);
   5315                                 left(ios);
   5316                                 {
   5317                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5318                                     std::string ex(str, iter.base());
   5319                                     assert(ex == "+1234567890.125000*******");
   5320                                     assert(ios.width() == 0);
   5321                                 }
   5322                                 ios.width(25);
   5323                                 right(ios);
   5324                                 {
   5325                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5326                                     std::string ex(str, iter.base());
   5327                                     assert(ex == "*******+1234567890.125000");
   5328                                     assert(ios.width() == 0);
   5329                                 }
   5330                                 ios.width(25);
   5331                                 internal(ios);
   5332                                 {
   5333                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5334                                     std::string ex(str, iter.base());
   5335                                     assert(ex == "+*******1234567890.125000");
   5336                                     assert(ios.width() == 0);
   5337                                 }
   5338                             }
   5339                             ios.imbue(lg);
   5340                             {
   5341                                 ios.width(0);
   5342                                 {
   5343                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5344                                     std::string ex(str, iter.base());
   5345                                     assert(ex == "+1_234_567_89_0;125000");
   5346                                     assert(ios.width() == 0);
   5347                                 }
   5348                                 ios.width(25);
   5349                                 left(ios);
   5350                                 {
   5351                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5352                                     std::string ex(str, iter.base());
   5353                                     assert(ex == "+1_234_567_89_0;125000***");
   5354                                     assert(ios.width() == 0);
   5355                                 }
   5356                                 ios.width(25);
   5357                                 right(ios);
   5358                                 {
   5359                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5360                                     std::string ex(str, iter.base());
   5361                                     assert(ex == "***+1_234_567_89_0;125000");
   5362                                     assert(ios.width() == 0);
   5363                                 }
   5364                                 ios.width(25);
   5365                                 internal(ios);
   5366                                 {
   5367                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5368                                     std::string ex(str, iter.base());
   5369                                     assert(ex == "+***1_234_567_89_0;125000");
   5370                                     assert(ios.width() == 0);
   5371                                 }
   5372                             }
   5373                         }
   5374                     }
   5375                 }
   5376             }
   5377             ios.precision(60);
   5378             {
   5379                 nouppercase(ios);
   5380                 {
   5381                     noshowpos(ios);
   5382                     {
   5383                         noshowpoint(ios);
   5384                         {
   5385                             ios.imbue(lc);
   5386                             {
   5387                                 ios.width(0);
   5388                                 {
   5389                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5390                                     std::string ex(str, iter.base());
   5391                                     assert(ex == "1234567890.125");
   5392                                     assert(ios.width() == 0);
   5393                                 }
   5394                                 ios.width(25);
   5395                                 left(ios);
   5396                                 {
   5397                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5398                                     std::string ex(str, iter.base());
   5399                                     assert(ex == "1234567890.125***********");
   5400                                     assert(ios.width() == 0);
   5401                                 }
   5402                                 ios.width(25);
   5403                                 right(ios);
   5404                                 {
   5405                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5406                                     std::string ex(str, iter.base());
   5407                                     assert(ex == "***********1234567890.125");
   5408                                     assert(ios.width() == 0);
   5409                                 }
   5410                                 ios.width(25);
   5411                                 internal(ios);
   5412                                 {
   5413                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5414                                     std::string ex(str, iter.base());
   5415                                     assert(ex == "***********1234567890.125");
   5416                                     assert(ios.width() == 0);
   5417                                 }
   5418                             }
   5419                             ios.imbue(lg);
   5420                             {
   5421                                 ios.width(0);
   5422                                 {
   5423                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5424                                     std::string ex(str, iter.base());
   5425                                     assert(ex == "1_234_567_89_0;125");
   5426                                     assert(ios.width() == 0);
   5427                                 }
   5428                                 ios.width(25);
   5429                                 left(ios);
   5430                                 {
   5431                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5432                                     std::string ex(str, iter.base());
   5433                                     assert(ex == "1_234_567_89_0;125*******");
   5434                                     assert(ios.width() == 0);
   5435                                 }
   5436                                 ios.width(25);
   5437                                 right(ios);
   5438                                 {
   5439                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5440                                     std::string ex(str, iter.base());
   5441                                     assert(ex == "*******1_234_567_89_0;125");
   5442                                     assert(ios.width() == 0);
   5443                                 }
   5444                                 ios.width(25);
   5445                                 internal(ios);
   5446                                 {
   5447                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5448                                     std::string ex(str, iter.base());
   5449                                     assert(ex == "*******1_234_567_89_0;125");
   5450                                     assert(ios.width() == 0);
   5451                                 }
   5452                             }
   5453                         }
   5454                         showpoint(ios);
   5455                         {
   5456                             ios.imbue(lc);
   5457                             {
   5458                                 ios.width(0);
   5459                                 {
   5460                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5461                                     std::string ex(str, iter.base());
   5462                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
   5463                                     assert(ios.width() == 0);
   5464                                 }
   5465                                 ios.width(25);
   5466                                 left(ios);
   5467                                 {
   5468                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5469                                     std::string ex(str, iter.base());
   5470                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
   5471                                     assert(ios.width() == 0);
   5472                                 }
   5473                                 ios.width(25);
   5474                                 right(ios);
   5475                                 {
   5476                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5477                                     std::string ex(str, iter.base());
   5478                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
   5479                                     assert(ios.width() == 0);
   5480                                 }
   5481                                 ios.width(25);
   5482                                 internal(ios);
   5483                                 {
   5484                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5485                                     std::string ex(str, iter.base());
   5486                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
   5487                                     assert(ios.width() == 0);
   5488                                 }
   5489                             }
   5490                             ios.imbue(lg);
   5491                             {
   5492                                 ios.width(0);
   5493                                 {
   5494                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5495                                     std::string ex(str, iter.base());
   5496                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
   5497                                     assert(ios.width() == 0);
   5498                                 }
   5499                                 ios.width(25);
   5500                                 left(ios);
   5501                                 {
   5502                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5503                                     std::string ex(str, iter.base());
   5504                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
   5505                                     assert(ios.width() == 0);
   5506                                 }
   5507                                 ios.width(25);
   5508                                 right(ios);
   5509                                 {
   5510                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5511                                     std::string ex(str, iter.base());
   5512                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
   5513                                     assert(ios.width() == 0);
   5514                                 }
   5515                                 ios.width(25);
   5516                                 internal(ios);
   5517                                 {
   5518                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5519                                     std::string ex(str, iter.base());
   5520                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
   5521                                     assert(ios.width() == 0);
   5522                                 }
   5523                             }
   5524                         }
   5525                     }
   5526                     showpos(ios);
   5527                     {
   5528                         noshowpoint(ios);
   5529                         {
   5530                             ios.imbue(lc);
   5531                             {
   5532                                 ios.width(0);
   5533                                 {
   5534                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5535                                     std::string ex(str, iter.base());
   5536                                     assert(ex == "+1234567890.125");
   5537                                     assert(ios.width() == 0);
   5538                                 }
   5539                                 ios.width(25);
   5540                                 left(ios);
   5541                                 {
   5542                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5543                                     std::string ex(str, iter.base());
   5544                                     assert(ex == "+1234567890.125**********");
   5545                                     assert(ios.width() == 0);
   5546                                 }
   5547                                 ios.width(25);
   5548                                 right(ios);
   5549                                 {
   5550                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5551                                     std::string ex(str, iter.base());
   5552                                     assert(ex == "**********+1234567890.125");
   5553                                     assert(ios.width() == 0);
   5554                                 }
   5555                                 ios.width(25);
   5556                                 internal(ios);
   5557                                 {
   5558                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5559                                     std::string ex(str, iter.base());
   5560                                     assert(ex == "+**********1234567890.125");
   5561                                     assert(ios.width() == 0);
   5562                                 }
   5563                             }
   5564                             ios.imbue(lg);
   5565                             {
   5566                                 ios.width(0);
   5567                                 {
   5568                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5569                                     std::string ex(str, iter.base());
   5570                                     assert(ex == "+1_234_567_89_0;125");
   5571                                     assert(ios.width() == 0);
   5572                                 }
   5573                                 ios.width(25);
   5574                                 left(ios);
   5575                                 {
   5576                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5577                                     std::string ex(str, iter.base());
   5578                                     assert(ex == "+1_234_567_89_0;125******");
   5579                                     assert(ios.width() == 0);
   5580                                 }
   5581                                 ios.width(25);
   5582                                 right(ios);
   5583                                 {
   5584                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5585                                     std::string ex(str, iter.base());
   5586                                     assert(ex == "******+1_234_567_89_0;125");
   5587                                     assert(ios.width() == 0);
   5588                                 }
   5589                                 ios.width(25);
   5590                                 internal(ios);
   5591                                 {
   5592                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5593                                     std::string ex(str, iter.base());
   5594                                     assert(ex == "+******1_234_567_89_0;125");
   5595                                     assert(ios.width() == 0);
   5596                                 }
   5597                             }
   5598                         }
   5599                         showpoint(ios);
   5600                         {
   5601                             ios.imbue(lc);
   5602                             {
   5603                                 ios.width(0);
   5604                                 {
   5605                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5606                                     std::string ex(str, iter.base());
   5607                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
   5608                                     assert(ios.width() == 0);
   5609                                 }
   5610                                 ios.width(25);
   5611                                 left(ios);
   5612                                 {
   5613                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5614                                     std::string ex(str, iter.base());
   5615                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
   5616                                     assert(ios.width() == 0);
   5617                                 }
   5618                                 ios.width(25);
   5619                                 right(ios);
   5620                                 {
   5621                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5622                                     std::string ex(str, iter.base());
   5623                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
   5624                                     assert(ios.width() == 0);
   5625                                 }
   5626                                 ios.width(25);
   5627                                 internal(ios);
   5628                                 {
   5629                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5630                                     std::string ex(str, iter.base());
   5631                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
   5632                                     assert(ios.width() == 0);
   5633                                 }
   5634                             }
   5635                             ios.imbue(lg);
   5636                             {
   5637                                 ios.width(0);
   5638                                 {
   5639                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5640                                     std::string ex(str, iter.base());
   5641                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
   5642                                     assert(ios.width() == 0);
   5643                                 }
   5644                                 ios.width(25);
   5645                                 left(ios);
   5646                                 {
   5647                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5648                                     std::string ex(str, iter.base());
   5649                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
   5650                                     assert(ios.width() == 0);
   5651                                 }
   5652                                 ios.width(25);
   5653                                 right(ios);
   5654                                 {
   5655                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5656                                     std::string ex(str, iter.base());
   5657                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
   5658                                     assert(ios.width() == 0);
   5659                                 }
   5660                                 ios.width(25);
   5661                                 internal(ios);
   5662                                 {
   5663                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5664                                     std::string ex(str, iter.base());
   5665                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
   5666                                     assert(ios.width() == 0);
   5667                                 }
   5668                             }
   5669                         }
   5670                     }
   5671                 }
   5672                 uppercase(ios);
   5673                 {
   5674                     noshowpos(ios);
   5675                     {
   5676                         noshowpoint(ios);
   5677                         {
   5678                             ios.imbue(lc);
   5679                             {
   5680                                 ios.width(0);
   5681                                 {
   5682                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5683                                     std::string ex(str, iter.base());
   5684                                     assert(ex == "1234567890.125");
   5685                                     assert(ios.width() == 0);
   5686                                 }
   5687                                 ios.width(25);
   5688                                 left(ios);
   5689                                 {
   5690                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5691                                     std::string ex(str, iter.base());
   5692                                     assert(ex == "1234567890.125***********");
   5693                                     assert(ios.width() == 0);
   5694                                 }
   5695                                 ios.width(25);
   5696                                 right(ios);
   5697                                 {
   5698                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5699                                     std::string ex(str, iter.base());
   5700                                     assert(ex == "***********1234567890.125");
   5701                                     assert(ios.width() == 0);
   5702                                 }
   5703                                 ios.width(25);
   5704                                 internal(ios);
   5705                                 {
   5706                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5707                                     std::string ex(str, iter.base());
   5708                                     assert(ex == "***********1234567890.125");
   5709                                     assert(ios.width() == 0);
   5710                                 }
   5711                             }
   5712                             ios.imbue(lg);
   5713                             {
   5714                                 ios.width(0);
   5715                                 {
   5716                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5717                                     std::string ex(str, iter.base());
   5718                                     assert(ex == "1_234_567_89_0;125");
   5719                                     assert(ios.width() == 0);
   5720                                 }
   5721                                 ios.width(25);
   5722                                 left(ios);
   5723                                 {
   5724                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5725                                     std::string ex(str, iter.base());
   5726                                     assert(ex == "1_234_567_89_0;125*******");
   5727                                     assert(ios.width() == 0);
   5728                                 }
   5729                                 ios.width(25);
   5730                                 right(ios);
   5731                                 {
   5732                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5733                                     std::string ex(str, iter.base());
   5734                                     assert(ex == "*******1_234_567_89_0;125");
   5735                                     assert(ios.width() == 0);
   5736                                 }
   5737                                 ios.width(25);
   5738                                 internal(ios);
   5739                                 {
   5740                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5741                                     std::string ex(str, iter.base());
   5742                                     assert(ex == "*******1_234_567_89_0;125");
   5743                                     assert(ios.width() == 0);
   5744                                 }
   5745                             }
   5746                         }
   5747                         showpoint(ios);
   5748                         {
   5749                             ios.imbue(lc);
   5750                             {
   5751                                 ios.width(0);
   5752                                 {
   5753                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5754                                     std::string ex(str, iter.base());
   5755                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
   5756                                     assert(ios.width() == 0);
   5757                                 }
   5758                                 ios.width(25);
   5759                                 left(ios);
   5760                                 {
   5761                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5762                                     std::string ex(str, iter.base());
   5763                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
   5764                                     assert(ios.width() == 0);
   5765                                 }
   5766                                 ios.width(25);
   5767                                 right(ios);
   5768                                 {
   5769                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5770                                     std::string ex(str, iter.base());
   5771                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
   5772                                     assert(ios.width() == 0);
   5773                                 }
   5774                                 ios.width(25);
   5775                                 internal(ios);
   5776                                 {
   5777                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5778                                     std::string ex(str, iter.base());
   5779                                     assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
   5780                                     assert(ios.width() == 0);
   5781                                 }
   5782                             }
   5783                             ios.imbue(lg);
   5784                             {
   5785                                 ios.width(0);
   5786                                 {
   5787                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5788                                     std::string ex(str, iter.base());
   5789                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
   5790                                     assert(ios.width() == 0);
   5791                                 }
   5792                                 ios.width(25);
   5793                                 left(ios);
   5794                                 {
   5795                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5796                                     std::string ex(str, iter.base());
   5797                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
   5798                                     assert(ios.width() == 0);
   5799                                 }
   5800                                 ios.width(25);
   5801                                 right(ios);
   5802                                 {
   5803                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5804                                     std::string ex(str, iter.base());
   5805                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
   5806                                     assert(ios.width() == 0);
   5807                                 }
   5808                                 ios.width(25);
   5809                                 internal(ios);
   5810                                 {
   5811                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5812                                     std::string ex(str, iter.base());
   5813                                     assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
   5814                                     assert(ios.width() == 0);
   5815                                 }
   5816                             }
   5817                         }
   5818                     }
   5819                     showpos(ios);
   5820                     {
   5821                         noshowpoint(ios);
   5822                         {
   5823                             ios.imbue(lc);
   5824                             {
   5825                                 ios.width(0);
   5826                                 {
   5827                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5828                                     std::string ex(str, iter.base());
   5829                                     assert(ex == "+1234567890.125");
   5830                                     assert(ios.width() == 0);
   5831                                 }
   5832                                 ios.width(25);
   5833                                 left(ios);
   5834                                 {
   5835                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5836                                     std::string ex(str, iter.base());
   5837                                     assert(ex == "+1234567890.125**********");
   5838                                     assert(ios.width() == 0);
   5839                                 }
   5840                                 ios.width(25);
   5841                                 right(ios);
   5842                                 {
   5843                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5844                                     std::string ex(str, iter.base());
   5845                                     assert(ex == "**********+1234567890.125");
   5846                                     assert(ios.width() == 0);
   5847                                 }
   5848                                 ios.width(25);
   5849                                 internal(ios);
   5850                                 {
   5851                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5852                                     std::string ex(str, iter.base());
   5853                                     assert(ex == "+**********1234567890.125");
   5854                                     assert(ios.width() == 0);
   5855                                 }
   5856                             }
   5857                             ios.imbue(lg);
   5858                             {
   5859                                 ios.width(0);
   5860                                 {
   5861                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5862                                     std::string ex(str, iter.base());
   5863                                     assert(ex == "+1_234_567_89_0;125");
   5864                                     assert(ios.width() == 0);
   5865                                 }
   5866                                 ios.width(25);
   5867                                 left(ios);
   5868                                 {
   5869                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5870                                     std::string ex(str, iter.base());
   5871                                     assert(ex == "+1_234_567_89_0;125******");
   5872                                     assert(ios.width() == 0);
   5873                                 }
   5874                                 ios.width(25);
   5875                                 right(ios);
   5876                                 {
   5877                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5878                                     std::string ex(str, iter.base());
   5879                                     assert(ex == "******+1_234_567_89_0;125");
   5880                                     assert(ios.width() == 0);
   5881                                 }
   5882                                 ios.width(25);
   5883                                 internal(ios);
   5884                                 {
   5885                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5886                                     std::string ex(str, iter.base());
   5887                                     assert(ex == "+******1_234_567_89_0;125");
   5888                                     assert(ios.width() == 0);
   5889                                 }
   5890                             }
   5891                         }
   5892                         showpoint(ios);
   5893                         {
   5894                             ios.imbue(lc);
   5895                             {
   5896                                 ios.width(0);
   5897                                 {
   5898                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5899                                     std::string ex(str, iter.base());
   5900                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
   5901                                     assert(ios.width() == 0);
   5902                                 }
   5903                                 ios.width(25);
   5904                                 left(ios);
   5905                                 {
   5906                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5907                                     std::string ex(str, iter.base());
   5908                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
   5909                                     assert(ios.width() == 0);
   5910                                 }
   5911                                 ios.width(25);
   5912                                 right(ios);
   5913                                 {
   5914                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5915                                     std::string ex(str, iter.base());
   5916                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
   5917                                     assert(ios.width() == 0);
   5918                                 }
   5919                                 ios.width(25);
   5920                                 internal(ios);
   5921                                 {
   5922                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5923                                     std::string ex(str, iter.base());
   5924                                     assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
   5925                                     assert(ios.width() == 0);
   5926                                 }
   5927                             }
   5928                             ios.imbue(lg);
   5929                             {
   5930                                 ios.width(0);
   5931                                 {
   5932                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5933                                     std::string ex(str, iter.base());
   5934                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
   5935                                     assert(ios.width() == 0);
   5936                                 }
   5937                                 ios.width(25);
   5938                                 left(ios);
   5939                                 {
   5940                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5941                                     std::string ex(str, iter.base());
   5942                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
   5943                                     assert(ios.width() == 0);
   5944                                 }
   5945                                 ios.width(25);
   5946                                 right(ios);
   5947                                 {
   5948                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5949                                     std::string ex(str, iter.base());
   5950                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
   5951                                     assert(ios.width() == 0);
   5952                                 }
   5953                                 ios.width(25);
   5954                                 internal(ios);
   5955                                 {
   5956                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5957                                     std::string ex(str, iter.base());
   5958                                     assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
   5959                                     assert(ios.width() == 0);
   5960                                 }
   5961                             }
   5962                         }
   5963                     }
   5964                 }
   5965             }
   5966         }
   5967     }
   5968 }
   5969 
   5970 void test3()
   5971 {
   5972     char str[200];
   5973     output_iterator<char*> iter;
   5974     std::locale lc = std::locale::classic();
   5975     std::locale lg(lc, new my_numpunct);
   5976     const my_facet f(1);
   5977     {
   5978         double v = +0.;
   5979         std::ios ios(0);
   5980         fixed(ios);
   5981         // %f
   5982         {
   5983             ios.precision(0);
   5984             {
   5985                 nouppercase(ios);
   5986                 {
   5987                     noshowpos(ios);
   5988                     {
   5989                         noshowpoint(ios);
   5990                         {
   5991                             ios.imbue(lc);
   5992                             {
   5993                                 ios.width(0);
   5994                                 {
   5995                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   5996                                     std::string ex(str, iter.base());
   5997                                     assert(ex == "0");
   5998                                     assert(ios.width() == 0);
   5999                                 }
   6000                                 ios.width(25);
   6001                                 left(ios);
   6002                                 {
   6003                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6004                                     std::string ex(str, iter.base());
   6005                                     assert(ex == "0************************");
   6006                                     assert(ios.width() == 0);
   6007                                 }
   6008                                 ios.width(25);
   6009                                 right(ios);
   6010                                 {
   6011                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6012                                     std::string ex(str, iter.base());
   6013                                     assert(ex == "************************0");
   6014                                     assert(ios.width() == 0);
   6015                                 }
   6016                                 ios.width(25);
   6017                                 internal(ios);
   6018                                 {
   6019                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6020                                     std::string ex(str, iter.base());
   6021                                     assert(ex == "************************0");
   6022                                     assert(ios.width() == 0);
   6023                                 }
   6024                             }
   6025                             ios.imbue(lg);
   6026                             {
   6027                                 ios.width(0);
   6028                                 {
   6029                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6030                                     std::string ex(str, iter.base());
   6031                                     assert(ex == "0");
   6032                                     assert(ios.width() == 0);
   6033                                 }
   6034                                 ios.width(25);
   6035                                 left(ios);
   6036                                 {
   6037                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6038                                     std::string ex(str, iter.base());
   6039                                     assert(ex == "0************************");
   6040                                     assert(ios.width() == 0);
   6041                                 }
   6042                                 ios.width(25);
   6043                                 right(ios);
   6044                                 {
   6045                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6046                                     std::string ex(str, iter.base());
   6047                                     assert(ex == "************************0");
   6048                                     assert(ios.width() == 0);
   6049                                 }
   6050                                 ios.width(25);
   6051                                 internal(ios);
   6052                                 {
   6053                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6054                                     std::string ex(str, iter.base());
   6055                                     assert(ex == "************************0");
   6056                                     assert(ios.width() == 0);
   6057                                 }
   6058                             }
   6059                         }
   6060                         showpoint(ios);
   6061                         {
   6062                             ios.imbue(lc);
   6063                             {
   6064                                 ios.width(0);
   6065                                 {
   6066                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6067                                     std::string ex(str, iter.base());
   6068                                     assert(ex == "0.");
   6069                                     assert(ios.width() == 0);
   6070                                 }
   6071                                 ios.width(25);
   6072                                 left(ios);
   6073                                 {
   6074                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6075                                     std::string ex(str, iter.base());
   6076                                     assert(ex == "0.***********************");
   6077                                     assert(ios.width() == 0);
   6078                                 }
   6079                                 ios.width(25);
   6080                                 right(ios);
   6081                                 {
   6082                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6083                                     std::string ex(str, iter.base());
   6084                                     assert(ex == "***********************0.");
   6085                                     assert(ios.width() == 0);
   6086                                 }
   6087                                 ios.width(25);
   6088                                 internal(ios);
   6089                                 {
   6090                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6091                                     std::string ex(str, iter.base());
   6092                                     assert(ex == "***********************0.");
   6093                                     assert(ios.width() == 0);
   6094                                 }
   6095                             }
   6096                             ios.imbue(lg);
   6097                             {
   6098                                 ios.width(0);
   6099                                 {
   6100                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6101                                     std::string ex(str, iter.base());
   6102                                     assert(ex == "0;");
   6103                                     assert(ios.width() == 0);
   6104                                 }
   6105                                 ios.width(25);
   6106                                 left(ios);
   6107                                 {
   6108                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6109                                     std::string ex(str, iter.base());
   6110                                     assert(ex == "0;***********************");
   6111                                     assert(ios.width() == 0);
   6112                                 }
   6113                                 ios.width(25);
   6114                                 right(ios);
   6115                                 {
   6116                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6117                                     std::string ex(str, iter.base());
   6118                                     assert(ex == "***********************0;");
   6119                                     assert(ios.width() == 0);
   6120                                 }
   6121                                 ios.width(25);
   6122                                 internal(ios);
   6123                                 {
   6124                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6125                                     std::string ex(str, iter.base());
   6126                                     assert(ex == "***********************0;");
   6127                                     assert(ios.width() == 0);
   6128                                 }
   6129                             }
   6130                         }
   6131                     }
   6132                     showpos(ios);
   6133                     {
   6134                         noshowpoint(ios);
   6135                         {
   6136                             ios.imbue(lc);
   6137                             {
   6138                                 ios.width(0);
   6139                                 {
   6140                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6141                                     std::string ex(str, iter.base());
   6142                                     assert(ex == "+0");
   6143                                     assert(ios.width() == 0);
   6144                                 }
   6145                                 ios.width(25);
   6146                                 left(ios);
   6147                                 {
   6148                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6149                                     std::string ex(str, iter.base());
   6150                                     assert(ex == "+0***********************");
   6151                                     assert(ios.width() == 0);
   6152                                 }
   6153                                 ios.width(25);
   6154                                 right(ios);
   6155                                 {
   6156                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6157                                     std::string ex(str, iter.base());
   6158                                     assert(ex == "***********************+0");
   6159                                     assert(ios.width() == 0);
   6160                                 }
   6161                                 ios.width(25);
   6162                                 internal(ios);
   6163                                 {
   6164                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6165                                     std::string ex(str, iter.base());
   6166                                     assert(ex == "+***********************0");
   6167                                     assert(ios.width() == 0);
   6168                                 }
   6169                             }
   6170                             ios.imbue(lg);
   6171                             {
   6172                                 ios.width(0);
   6173                                 {
   6174                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6175                                     std::string ex(str, iter.base());
   6176                                     assert(ex == "+0");
   6177                                     assert(ios.width() == 0);
   6178                                 }
   6179                                 ios.width(25);
   6180                                 left(ios);
   6181                                 {
   6182                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6183                                     std::string ex(str, iter.base());
   6184                                     assert(ex == "+0***********************");
   6185                                     assert(ios.width() == 0);
   6186                                 }
   6187                                 ios.width(25);
   6188                                 right(ios);
   6189                                 {
   6190                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6191                                     std::string ex(str, iter.base());
   6192                                     assert(ex == "***********************+0");
   6193                                     assert(ios.width() == 0);
   6194                                 }
   6195                                 ios.width(25);
   6196                                 internal(ios);
   6197                                 {
   6198                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6199                                     std::string ex(str, iter.base());
   6200                                     assert(ex == "+***********************0");
   6201                                     assert(ios.width() == 0);
   6202                                 }
   6203                             }
   6204                         }
   6205                         showpoint(ios);
   6206                         {
   6207                             ios.imbue(lc);
   6208                             {
   6209                                 ios.width(0);
   6210                                 {
   6211                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6212                                     std::string ex(str, iter.base());
   6213                                     assert(ex == "+0.");
   6214                                     assert(ios.width() == 0);
   6215                                 }
   6216                                 ios.width(25);
   6217                                 left(ios);
   6218                                 {
   6219                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6220                                     std::string ex(str, iter.base());
   6221                                     assert(ex == "+0.**********************");
   6222                                     assert(ios.width() == 0);
   6223                                 }
   6224                                 ios.width(25);
   6225                                 right(ios);
   6226                                 {
   6227                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6228                                     std::string ex(str, iter.base());
   6229                                     assert(ex == "**********************+0.");
   6230                                     assert(ios.width() == 0);
   6231                                 }
   6232                                 ios.width(25);
   6233                                 internal(ios);
   6234                                 {
   6235                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6236                                     std::string ex(str, iter.base());
   6237                                     assert(ex == "+**********************0.");
   6238                                     assert(ios.width() == 0);
   6239                                 }
   6240                             }
   6241                             ios.imbue(lg);
   6242                             {
   6243                                 ios.width(0);
   6244                                 {
   6245                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6246                                     std::string ex(str, iter.base());
   6247                                     assert(ex == "+0;");
   6248                                     assert(ios.width() == 0);
   6249                                 }
   6250                                 ios.width(25);
   6251                                 left(ios);
   6252                                 {
   6253                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6254                                     std::string ex(str, iter.base());
   6255                                     assert(ex == "+0;**********************");
   6256                                     assert(ios.width() == 0);
   6257                                 }
   6258                                 ios.width(25);
   6259                                 right(ios);
   6260                                 {
   6261                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6262                                     std::string ex(str, iter.base());
   6263                                     assert(ex == "**********************+0;");
   6264                                     assert(ios.width() == 0);
   6265                                 }
   6266                                 ios.width(25);
   6267                                 internal(ios);
   6268                                 {
   6269                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6270                                     std::string ex(str, iter.base());
   6271                                     assert(ex == "+**********************0;");
   6272                                     assert(ios.width() == 0);
   6273                                 }
   6274                             }
   6275                         }
   6276                     }
   6277                 }
   6278                 uppercase(ios);
   6279                 {
   6280                     noshowpos(ios);
   6281                     {
   6282                         noshowpoint(ios);
   6283                         {
   6284                             ios.imbue(lc);
   6285                             {
   6286                                 ios.width(0);
   6287                                 {
   6288                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6289                                     std::string ex(str, iter.base());
   6290                                     assert(ex == "0");
   6291                                     assert(ios.width() == 0);
   6292                                 }
   6293                                 ios.width(25);
   6294                                 left(ios);
   6295                                 {
   6296                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6297                                     std::string ex(str, iter.base());
   6298                                     assert(ex == "0************************");
   6299                                     assert(ios.width() == 0);
   6300                                 }
   6301                                 ios.width(25);
   6302                                 right(ios);
   6303                                 {
   6304                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6305                                     std::string ex(str, iter.base());
   6306                                     assert(ex == "************************0");
   6307                                     assert(ios.width() == 0);
   6308                                 }
   6309                                 ios.width(25);
   6310                                 internal(ios);
   6311                                 {
   6312                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6313                                     std::string ex(str, iter.base());
   6314                                     assert(ex == "************************0");
   6315                                     assert(ios.width() == 0);
   6316                                 }
   6317                             }
   6318                             ios.imbue(lg);
   6319                             {
   6320                                 ios.width(0);
   6321                                 {
   6322                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6323                                     std::string ex(str, iter.base());
   6324                                     assert(ex == "0");
   6325                                     assert(ios.width() == 0);
   6326                                 }
   6327                                 ios.width(25);
   6328                                 left(ios);
   6329                                 {
   6330                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6331                                     std::string ex(str, iter.base());
   6332                                     assert(ex == "0************************");
   6333                                     assert(ios.width() == 0);
   6334                                 }
   6335                                 ios.width(25);
   6336                                 right(ios);
   6337                                 {
   6338                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6339                                     std::string ex(str, iter.base());
   6340                                     assert(ex == "************************0");
   6341                                     assert(ios.width() == 0);
   6342                                 }
   6343                                 ios.width(25);
   6344                                 internal(ios);
   6345                                 {
   6346                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6347                                     std::string ex(str, iter.base());
   6348                                     assert(ex == "************************0");
   6349                                     assert(ios.width() == 0);
   6350                                 }
   6351                             }
   6352                         }
   6353                         showpoint(ios);
   6354                         {
   6355                             ios.imbue(lc);
   6356                             {
   6357                                 ios.width(0);
   6358                                 {
   6359                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6360                                     std::string ex(str, iter.base());
   6361                                     assert(ex == "0.");
   6362                                     assert(ios.width() == 0);
   6363                                 }
   6364                                 ios.width(25);
   6365                                 left(ios);
   6366                                 {
   6367                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6368                                     std::string ex(str, iter.base());
   6369                                     assert(ex == "0.***********************");
   6370                                     assert(ios.width() == 0);
   6371                                 }
   6372                                 ios.width(25);
   6373                                 right(ios);
   6374                                 {
   6375                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6376                                     std::string ex(str, iter.base());
   6377                                     assert(ex == "***********************0.");
   6378                                     assert(ios.width() == 0);
   6379                                 }
   6380                                 ios.width(25);
   6381                                 internal(ios);
   6382                                 {
   6383                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6384                                     std::string ex(str, iter.base());
   6385                                     assert(ex == "***********************0.");
   6386                                     assert(ios.width() == 0);
   6387                                 }
   6388                             }
   6389                             ios.imbue(lg);
   6390                             {
   6391                                 ios.width(0);
   6392                                 {
   6393                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6394                                     std::string ex(str, iter.base());
   6395                                     assert(ex == "0;");
   6396                                     assert(ios.width() == 0);
   6397                                 }
   6398                                 ios.width(25);
   6399                                 left(ios);
   6400                                 {
   6401                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6402                                     std::string ex(str, iter.base());
   6403                                     assert(ex == "0;***********************");
   6404                                     assert(ios.width() == 0);
   6405                                 }
   6406                                 ios.width(25);
   6407                                 right(ios);
   6408                                 {
   6409                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6410                                     std::string ex(str, iter.base());
   6411                                     assert(ex == "***********************0;");
   6412                                     assert(ios.width() == 0);
   6413                                 }
   6414                                 ios.width(25);
   6415                                 internal(ios);
   6416                                 {
   6417                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6418                                     std::string ex(str, iter.base());
   6419                                     assert(ex == "***********************0;");
   6420                                     assert(ios.width() == 0);
   6421                                 }
   6422                             }
   6423                         }
   6424                     }
   6425                     showpos(ios);
   6426                     {
   6427                         noshowpoint(ios);
   6428                         {
   6429                             ios.imbue(lc);
   6430                             {
   6431                                 ios.width(0);
   6432                                 {
   6433                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6434                                     std::string ex(str, iter.base());
   6435                                     assert(ex == "+0");
   6436                                     assert(ios.width() == 0);
   6437                                 }
   6438                                 ios.width(25);
   6439                                 left(ios);
   6440                                 {
   6441                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6442                                     std::string ex(str, iter.base());
   6443                                     assert(ex == "+0***********************");
   6444                                     assert(ios.width() == 0);
   6445                                 }
   6446                                 ios.width(25);
   6447                                 right(ios);
   6448                                 {
   6449                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6450                                     std::string ex(str, iter.base());
   6451                                     assert(ex == "***********************+0");
   6452                                     assert(ios.width() == 0);
   6453                                 }
   6454                                 ios.width(25);
   6455                                 internal(ios);
   6456                                 {
   6457                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6458                                     std::string ex(str, iter.base());
   6459                                     assert(ex == "+***********************0");
   6460                                     assert(ios.width() == 0);
   6461                                 }
   6462                             }
   6463                             ios.imbue(lg);
   6464                             {
   6465                                 ios.width(0);
   6466                                 {
   6467                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6468                                     std::string ex(str, iter.base());
   6469                                     assert(ex == "+0");
   6470                                     assert(ios.width() == 0);
   6471                                 }
   6472                                 ios.width(25);
   6473                                 left(ios);
   6474                                 {
   6475                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6476                                     std::string ex(str, iter.base());
   6477                                     assert(ex == "+0***********************");
   6478                                     assert(ios.width() == 0);
   6479                                 }
   6480                                 ios.width(25);
   6481                                 right(ios);
   6482                                 {
   6483                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6484                                     std::string ex(str, iter.base());
   6485                                     assert(ex == "***********************+0");
   6486                                     assert(ios.width() == 0);
   6487                                 }
   6488                                 ios.width(25);
   6489                                 internal(ios);
   6490                                 {
   6491                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6492                                     std::string ex(str, iter.base());
   6493                                     assert(ex == "+***********************0");
   6494                                     assert(ios.width() == 0);
   6495                                 }
   6496                             }
   6497                         }
   6498                         showpoint(ios);
   6499                         {
   6500                             ios.imbue(lc);
   6501                             {
   6502                                 ios.width(0);
   6503                                 {
   6504                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6505                                     std::string ex(str, iter.base());
   6506                                     assert(ex == "+0.");
   6507                                     assert(ios.width() == 0);
   6508                                 }
   6509                                 ios.width(25);
   6510                                 left(ios);
   6511                                 {
   6512                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6513                                     std::string ex(str, iter.base());
   6514                                     assert(ex == "+0.**********************");
   6515                                     assert(ios.width() == 0);
   6516                                 }
   6517                                 ios.width(25);
   6518                                 right(ios);
   6519                                 {
   6520                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6521                                     std::string ex(str, iter.base());
   6522                                     assert(ex == "**********************+0.");
   6523                                     assert(ios.width() == 0);
   6524                                 }
   6525                                 ios.width(25);
   6526                                 internal(ios);
   6527                                 {
   6528                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6529                                     std::string ex(str, iter.base());
   6530                                     assert(ex == "+**********************0.");
   6531                                     assert(ios.width() == 0);
   6532                                 }
   6533                             }
   6534                             ios.imbue(lg);
   6535                             {
   6536                                 ios.width(0);
   6537                                 {
   6538                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6539                                     std::string ex(str, iter.base());
   6540                                     assert(ex == "+0;");
   6541                                     assert(ios.width() == 0);
   6542                                 }
   6543                                 ios.width(25);
   6544                                 left(ios);
   6545                                 {
   6546                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6547                                     std::string ex(str, iter.base());
   6548                                     assert(ex == "+0;**********************");
   6549                                     assert(ios.width() == 0);
   6550                                 }
   6551                                 ios.width(25);
   6552                                 right(ios);
   6553                                 {
   6554                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6555                                     std::string ex(str, iter.base());
   6556                                     assert(ex == "**********************+0;");
   6557                                     assert(ios.width() == 0);
   6558                                 }
   6559                                 ios.width(25);
   6560                                 internal(ios);
   6561                                 {
   6562                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6563                                     std::string ex(str, iter.base());
   6564                                     assert(ex == "+**********************0;");
   6565                                     assert(ios.width() == 0);
   6566                                 }
   6567                             }
   6568                         }
   6569                     }
   6570                 }
   6571             }
   6572             ios.precision(1);
   6573             {
   6574                 nouppercase(ios);
   6575                 {
   6576                     noshowpos(ios);
   6577                     {
   6578                         noshowpoint(ios);
   6579                         {
   6580                             ios.imbue(lc);
   6581                             {
   6582                                 ios.width(0);
   6583                                 {
   6584                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6585                                     std::string ex(str, iter.base());
   6586                                     assert(ex == "0.0");
   6587                                     assert(ios.width() == 0);
   6588                                 }
   6589                                 ios.width(25);
   6590                                 left(ios);
   6591                                 {
   6592                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6593                                     std::string ex(str, iter.base());
   6594                                     assert(ex == "0.0**********************");
   6595                                     assert(ios.width() == 0);
   6596                                 }
   6597                                 ios.width(25);
   6598                                 right(ios);
   6599                                 {
   6600                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6601                                     std::string ex(str, iter.base());
   6602                                     assert(ex == "**********************0.0");
   6603                                     assert(ios.width() == 0);
   6604                                 }
   6605                                 ios.width(25);
   6606                                 internal(ios);
   6607                                 {
   6608                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6609                                     std::string ex(str, iter.base());
   6610                                     assert(ex == "**********************0.0");
   6611                                     assert(ios.width() == 0);
   6612                                 }
   6613                             }
   6614                             ios.imbue(lg);
   6615                             {
   6616                                 ios.width(0);
   6617                                 {
   6618                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6619                                     std::string ex(str, iter.base());
   6620                                     assert(ex == "0;0");
   6621                                     assert(ios.width() == 0);
   6622                                 }
   6623                                 ios.width(25);
   6624                                 left(ios);
   6625                                 {
   6626                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6627                                     std::string ex(str, iter.base());
   6628                                     assert(ex == "0;0**********************");
   6629                                     assert(ios.width() == 0);
   6630                                 }
   6631                                 ios.width(25);
   6632                                 right(ios);
   6633                                 {
   6634                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6635                                     std::string ex(str, iter.base());
   6636                                     assert(ex == "**********************0;0");
   6637                                     assert(ios.width() == 0);
   6638                                 }
   6639                                 ios.width(25);
   6640                                 internal(ios);
   6641                                 {
   6642                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6643                                     std::string ex(str, iter.base());
   6644                                     assert(ex == "**********************0;0");
   6645                                     assert(ios.width() == 0);
   6646                                 }
   6647                             }
   6648                         }
   6649                         showpoint(ios);
   6650                         {
   6651                             ios.imbue(lc);
   6652                             {
   6653                                 ios.width(0);
   6654                                 {
   6655                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6656                                     std::string ex(str, iter.base());
   6657                                     assert(ex == "0.0");
   6658                                     assert(ios.width() == 0);
   6659                                 }
   6660                                 ios.width(25);
   6661                                 left(ios);
   6662                                 {
   6663                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6664                                     std::string ex(str, iter.base());
   6665                                     assert(ex == "0.0**********************");
   6666                                     assert(ios.width() == 0);
   6667                                 }
   6668                                 ios.width(25);
   6669                                 right(ios);
   6670                                 {
   6671                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6672                                     std::string ex(str, iter.base());
   6673                                     assert(ex == "**********************0.0");
   6674                                     assert(ios.width() == 0);
   6675                                 }
   6676                                 ios.width(25);
   6677                                 internal(ios);
   6678                                 {
   6679                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6680                                     std::string ex(str, iter.base());
   6681                                     assert(ex == "**********************0.0");
   6682                                     assert(ios.width() == 0);
   6683                                 }
   6684                             }
   6685                             ios.imbue(lg);
   6686                             {
   6687                                 ios.width(0);
   6688                                 {
   6689                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6690                                     std::string ex(str, iter.base());
   6691                                     assert(ex == "0;0");
   6692                                     assert(ios.width() == 0);
   6693                                 }
   6694                                 ios.width(25);
   6695                                 left(ios);
   6696                                 {
   6697                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6698                                     std::string ex(str, iter.base());
   6699                                     assert(ex == "0;0**********************");
   6700                                     assert(ios.width() == 0);
   6701                                 }
   6702                                 ios.width(25);
   6703                                 right(ios);
   6704                                 {
   6705                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6706                                     std::string ex(str, iter.base());
   6707                                     assert(ex == "**********************0;0");
   6708                                     assert(ios.width() == 0);
   6709                                 }
   6710                                 ios.width(25);
   6711                                 internal(ios);
   6712                                 {
   6713                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6714                                     std::string ex(str, iter.base());
   6715                                     assert(ex == "**********************0;0");
   6716                                     assert(ios.width() == 0);
   6717                                 }
   6718                             }
   6719                         }
   6720                     }
   6721                     showpos(ios);
   6722                     {
   6723                         noshowpoint(ios);
   6724                         {
   6725                             ios.imbue(lc);
   6726                             {
   6727                                 ios.width(0);
   6728                                 {
   6729                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6730                                     std::string ex(str, iter.base());
   6731                                     assert(ex == "+0.0");
   6732                                     assert(ios.width() == 0);
   6733                                 }
   6734                                 ios.width(25);
   6735                                 left(ios);
   6736                                 {
   6737                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6738                                     std::string ex(str, iter.base());
   6739                                     assert(ex == "+0.0*********************");
   6740                                     assert(ios.width() == 0);
   6741                                 }
   6742                                 ios.width(25);
   6743                                 right(ios);
   6744                                 {
   6745                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6746                                     std::string ex(str, iter.base());
   6747                                     assert(ex == "*********************+0.0");
   6748                                     assert(ios.width() == 0);
   6749                                 }
   6750                                 ios.width(25);
   6751                                 internal(ios);
   6752                                 {
   6753                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6754                                     std::string ex(str, iter.base());
   6755                                     assert(ex == "+*********************0.0");
   6756                                     assert(ios.width() == 0);
   6757                                 }
   6758                             }
   6759                             ios.imbue(lg);
   6760                             {
   6761                                 ios.width(0);
   6762                                 {
   6763                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6764                                     std::string ex(str, iter.base());
   6765                                     assert(ex == "+0;0");
   6766                                     assert(ios.width() == 0);
   6767                                 }
   6768                                 ios.width(25);
   6769                                 left(ios);
   6770                                 {
   6771                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6772                                     std::string ex(str, iter.base());
   6773                                     assert(ex == "+0;0*********************");
   6774                                     assert(ios.width() == 0);
   6775                                 }
   6776                                 ios.width(25);
   6777                                 right(ios);
   6778                                 {
   6779                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6780                                     std::string ex(str, iter.base());
   6781                                     assert(ex == "*********************+0;0");
   6782                                     assert(ios.width() == 0);
   6783                                 }
   6784                                 ios.width(25);
   6785                                 internal(ios);
   6786                                 {
   6787                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6788                                     std::string ex(str, iter.base());
   6789                                     assert(ex == "+*********************0;0");
   6790                                     assert(ios.width() == 0);
   6791                                 }
   6792                             }
   6793                         }
   6794                         showpoint(ios);
   6795                         {
   6796                             ios.imbue(lc);
   6797                             {
   6798                                 ios.width(0);
   6799                                 {
   6800                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6801                                     std::string ex(str, iter.base());
   6802                                     assert(ex == "+0.0");
   6803                                     assert(ios.width() == 0);
   6804                                 }
   6805                                 ios.width(25);
   6806                                 left(ios);
   6807                                 {
   6808                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6809                                     std::string ex(str, iter.base());
   6810                                     assert(ex == "+0.0*********************");
   6811                                     assert(ios.width() == 0);
   6812                                 }
   6813                                 ios.width(25);
   6814                                 right(ios);
   6815                                 {
   6816                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6817                                     std::string ex(str, iter.base());
   6818                                     assert(ex == "*********************+0.0");
   6819                                     assert(ios.width() == 0);
   6820                                 }
   6821                                 ios.width(25);
   6822                                 internal(ios);
   6823                                 {
   6824                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6825                                     std::string ex(str, iter.base());
   6826                                     assert(ex == "+*********************0.0");
   6827                                     assert(ios.width() == 0);
   6828                                 }
   6829                             }
   6830                             ios.imbue(lg);
   6831                             {
   6832                                 ios.width(0);
   6833                                 {
   6834                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6835                                     std::string ex(str, iter.base());
   6836                                     assert(ex == "+0;0");
   6837                                     assert(ios.width() == 0);
   6838                                 }
   6839                                 ios.width(25);
   6840                                 left(ios);
   6841                                 {
   6842                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6843                                     std::string ex(str, iter.base());
   6844                                     assert(ex == "+0;0*********************");
   6845                                     assert(ios.width() == 0);
   6846                                 }
   6847                                 ios.width(25);
   6848                                 right(ios);
   6849                                 {
   6850                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6851                                     std::string ex(str, iter.base());
   6852                                     assert(ex == "*********************+0;0");
   6853                                     assert(ios.width() == 0);
   6854                                 }
   6855                                 ios.width(25);
   6856                                 internal(ios);
   6857                                 {
   6858                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6859                                     std::string ex(str, iter.base());
   6860                                     assert(ex == "+*********************0;0");
   6861                                     assert(ios.width() == 0);
   6862                                 }
   6863                             }
   6864                         }
   6865                     }
   6866                 }
   6867                 uppercase(ios);
   6868                 {
   6869                     noshowpos(ios);
   6870                     {
   6871                         noshowpoint(ios);
   6872                         {
   6873                             ios.imbue(lc);
   6874                             {
   6875                                 ios.width(0);
   6876                                 {
   6877                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6878                                     std::string ex(str, iter.base());
   6879                                     assert(ex == "0.0");
   6880                                     assert(ios.width() == 0);
   6881                                 }
   6882                                 ios.width(25);
   6883                                 left(ios);
   6884                                 {
   6885                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6886                                     std::string ex(str, iter.base());
   6887                                     assert(ex == "0.0**********************");
   6888                                     assert(ios.width() == 0);
   6889                                 }
   6890                                 ios.width(25);
   6891                                 right(ios);
   6892                                 {
   6893                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6894                                     std::string ex(str, iter.base());
   6895                                     assert(ex == "**********************0.0");
   6896                                     assert(ios.width() == 0);
   6897                                 }
   6898                                 ios.width(25);
   6899                                 internal(ios);
   6900                                 {
   6901                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6902                                     std::string ex(str, iter.base());
   6903                                     assert(ex == "**********************0.0");
   6904                                     assert(ios.width() == 0);
   6905                                 }
   6906                             }
   6907                             ios.imbue(lg);
   6908                             {
   6909                                 ios.width(0);
   6910                                 {
   6911                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6912                                     std::string ex(str, iter.base());
   6913                                     assert(ex == "0;0");
   6914                                     assert(ios.width() == 0);
   6915                                 }
   6916                                 ios.width(25);
   6917                                 left(ios);
   6918                                 {
   6919                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6920                                     std::string ex(str, iter.base());
   6921                                     assert(ex == "0;0**********************");
   6922                                     assert(ios.width() == 0);
   6923                                 }
   6924                                 ios.width(25);
   6925                                 right(ios);
   6926                                 {
   6927                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6928                                     std::string ex(str, iter.base());
   6929                                     assert(ex == "**********************0;0");
   6930                                     assert(ios.width() == 0);
   6931                                 }
   6932                                 ios.width(25);
   6933                                 internal(ios);
   6934                                 {
   6935                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6936                                     std::string ex(str, iter.base());
   6937                                     assert(ex == "**********************0;0");
   6938                                     assert(ios.width() == 0);
   6939                                 }
   6940                             }
   6941                         }
   6942                         showpoint(ios);
   6943                         {
   6944                             ios.imbue(lc);
   6945                             {
   6946                                 ios.width(0);
   6947                                 {
   6948                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6949                                     std::string ex(str, iter.base());
   6950                                     assert(ex == "0.0");
   6951                                     assert(ios.width() == 0);
   6952                                 }
   6953                                 ios.width(25);
   6954                                 left(ios);
   6955                                 {
   6956                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6957                                     std::string ex(str, iter.base());
   6958                                     assert(ex == "0.0**********************");
   6959                                     assert(ios.width() == 0);
   6960                                 }
   6961                                 ios.width(25);
   6962                                 right(ios);
   6963                                 {
   6964                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6965                                     std::string ex(str, iter.base());
   6966                                     assert(ex == "**********************0.0");
   6967                                     assert(ios.width() == 0);
   6968                                 }
   6969                                 ios.width(25);
   6970                                 internal(ios);
   6971                                 {
   6972                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6973                                     std::string ex(str, iter.base());
   6974                                     assert(ex == "**********************0.0");
   6975                                     assert(ios.width() == 0);
   6976                                 }
   6977                             }
   6978                             ios.imbue(lg);
   6979                             {
   6980                                 ios.width(0);
   6981                                 {
   6982                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6983                                     std::string ex(str, iter.base());
   6984                                     assert(ex == "0;0");
   6985                                     assert(ios.width() == 0);
   6986                                 }
   6987                                 ios.width(25);
   6988                                 left(ios);
   6989                                 {
   6990                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6991                                     std::string ex(str, iter.base());
   6992                                     assert(ex == "0;0**********************");
   6993                                     assert(ios.width() == 0);
   6994                                 }
   6995                                 ios.width(25);
   6996                                 right(ios);
   6997                                 {
   6998                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   6999                                     std::string ex(str, iter.base());
   7000                                     assert(ex == "**********************0;0");
   7001                                     assert(ios.width() == 0);
   7002                                 }
   7003                                 ios.width(25);
   7004                                 internal(ios);
   7005                                 {
   7006                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7007                                     std::string ex(str, iter.base());
   7008                                     assert(ex == "**********************0;0");
   7009                                     assert(ios.width() == 0);
   7010                                 }
   7011                             }
   7012                         }
   7013                     }
   7014                     showpos(ios);
   7015                     {
   7016                         noshowpoint(ios);
   7017                         {
   7018                             ios.imbue(lc);
   7019                             {
   7020                                 ios.width(0);
   7021                                 {
   7022                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7023                                     std::string ex(str, iter.base());
   7024                                     assert(ex == "+0.0");
   7025                                     assert(ios.width() == 0);
   7026                                 }
   7027                                 ios.width(25);
   7028                                 left(ios);
   7029                                 {
   7030                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7031                                     std::string ex(str, iter.base());
   7032                                     assert(ex == "+0.0*********************");
   7033                                     assert(ios.width() == 0);
   7034                                 }
   7035                                 ios.width(25);
   7036                                 right(ios);
   7037                                 {
   7038                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7039                                     std::string ex(str, iter.base());
   7040                                     assert(ex == "*********************+0.0");
   7041                                     assert(ios.width() == 0);
   7042                                 }
   7043                                 ios.width(25);
   7044                                 internal(ios);
   7045                                 {
   7046                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7047                                     std::string ex(str, iter.base());
   7048                                     assert(ex == "+*********************0.0");
   7049                                     assert(ios.width() == 0);
   7050                                 }
   7051                             }
   7052                             ios.imbue(lg);
   7053                             {
   7054                                 ios.width(0);
   7055                                 {
   7056                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7057                                     std::string ex(str, iter.base());
   7058                                     assert(ex == "+0;0");
   7059                                     assert(ios.width() == 0);
   7060                                 }
   7061                                 ios.width(25);
   7062                                 left(ios);
   7063                                 {
   7064                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7065                                     std::string ex(str, iter.base());
   7066                                     assert(ex == "+0;0*********************");
   7067                                     assert(ios.width() == 0);
   7068                                 }
   7069                                 ios.width(25);
   7070                                 right(ios);
   7071                                 {
   7072                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7073                                     std::string ex(str, iter.base());
   7074                                     assert(ex == "*********************+0;0");
   7075                                     assert(ios.width() == 0);
   7076                                 }
   7077                                 ios.width(25);
   7078                                 internal(ios);
   7079                                 {
   7080                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7081                                     std::string ex(str, iter.base());
   7082                                     assert(ex == "+*********************0;0");
   7083                                     assert(ios.width() == 0);
   7084                                 }
   7085                             }
   7086                         }
   7087                         showpoint(ios);
   7088                         {
   7089                             ios.imbue(lc);
   7090                             {
   7091                                 ios.width(0);
   7092                                 {
   7093                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7094                                     std::string ex(str, iter.base());
   7095                                     assert(ex == "+0.0");
   7096                                     assert(ios.width() == 0);
   7097                                 }
   7098                                 ios.width(25);
   7099                                 left(ios);
   7100                                 {
   7101                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7102                                     std::string ex(str, iter.base());
   7103                                     assert(ex == "+0.0*********************");
   7104                                     assert(ios.width() == 0);
   7105                                 }
   7106                                 ios.width(25);
   7107                                 right(ios);
   7108                                 {
   7109                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7110                                     std::string ex(str, iter.base());
   7111                                     assert(ex == "*********************+0.0");
   7112                                     assert(ios.width() == 0);
   7113                                 }
   7114                                 ios.width(25);
   7115                                 internal(ios);
   7116                                 {
   7117                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7118                                     std::string ex(str, iter.base());
   7119                                     assert(ex == "+*********************0.0");
   7120                                     assert(ios.width() == 0);
   7121                                 }
   7122                             }
   7123                             ios.imbue(lg);
   7124                             {
   7125                                 ios.width(0);
   7126                                 {
   7127                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7128                                     std::string ex(str, iter.base());
   7129                                     assert(ex == "+0;0");
   7130                                     assert(ios.width() == 0);
   7131                                 }
   7132                                 ios.width(25);
   7133                                 left(ios);
   7134                                 {
   7135                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7136                                     std::string ex(str, iter.base());
   7137                                     assert(ex == "+0;0*********************");
   7138                                     assert(ios.width() == 0);
   7139                                 }
   7140                                 ios.width(25);
   7141                                 right(ios);
   7142                                 {
   7143                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7144                                     std::string ex(str, iter.base());
   7145                                     assert(ex == "*********************+0;0");
   7146                                     assert(ios.width() == 0);
   7147                                 }
   7148                                 ios.width(25);
   7149                                 internal(ios);
   7150                                 {
   7151                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7152                                     std::string ex(str, iter.base());
   7153                                     assert(ex == "+*********************0;0");
   7154                                     assert(ios.width() == 0);
   7155                                 }
   7156                             }
   7157                         }
   7158                     }
   7159                 }
   7160             }
   7161             ios.precision(6);
   7162             {
   7163                 nouppercase(ios);
   7164                 {
   7165                     noshowpos(ios);
   7166                     {
   7167                         noshowpoint(ios);
   7168                         {
   7169                             ios.imbue(lc);
   7170                             {
   7171                                 ios.width(0);
   7172                                 {
   7173                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7174                                     std::string ex(str, iter.base());
   7175                                     assert(ex == "0.000000");
   7176                                     assert(ios.width() == 0);
   7177                                 }
   7178                                 ios.width(25);
   7179                                 left(ios);
   7180                                 {
   7181                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7182                                     std::string ex(str, iter.base());
   7183                                     assert(ex == "0.000000*****************");
   7184                                     assert(ios.width() == 0);
   7185                                 }
   7186                                 ios.width(25);
   7187                                 right(ios);
   7188                                 {
   7189                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7190                                     std::string ex(str, iter.base());
   7191                                     assert(ex == "*****************0.000000");
   7192                                     assert(ios.width() == 0);
   7193                                 }
   7194                                 ios.width(25);
   7195                                 internal(ios);
   7196                                 {
   7197                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7198                                     std::string ex(str, iter.base());
   7199                                     assert(ex == "*****************0.000000");
   7200                                     assert(ios.width() == 0);
   7201                                 }
   7202                             }
   7203                             ios.imbue(lg);
   7204                             {
   7205                                 ios.width(0);
   7206                                 {
   7207                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7208                                     std::string ex(str, iter.base());
   7209                                     assert(ex == "0;000000");
   7210                                     assert(ios.width() == 0);
   7211                                 }
   7212                                 ios.width(25);
   7213                                 left(ios);
   7214                                 {
   7215                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7216                                     std::string ex(str, iter.base());
   7217                                     assert(ex == "0;000000*****************");
   7218                                     assert(ios.width() == 0);
   7219                                 }
   7220                                 ios.width(25);
   7221                                 right(ios);
   7222                                 {
   7223                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7224                                     std::string ex(str, iter.base());
   7225                                     assert(ex == "*****************0;000000");
   7226                                     assert(ios.width() == 0);
   7227                                 }
   7228                                 ios.width(25);
   7229                                 internal(ios);
   7230                                 {
   7231                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7232                                     std::string ex(str, iter.base());
   7233                                     assert(ex == "*****************0;000000");
   7234                                     assert(ios.width() == 0);
   7235                                 }
   7236                             }
   7237                         }
   7238                         showpoint(ios);
   7239                         {
   7240                             ios.imbue(lc);
   7241                             {
   7242                                 ios.width(0);
   7243                                 {
   7244                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7245                                     std::string ex(str, iter.base());
   7246                                     assert(ex == "0.000000");
   7247                                     assert(ios.width() == 0);
   7248                                 }
   7249                                 ios.width(25);
   7250                                 left(ios);
   7251                                 {
   7252                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7253                                     std::string ex(str, iter.base());
   7254                                     assert(ex == "0.000000*****************");
   7255                                     assert(ios.width() == 0);
   7256                                 }
   7257                                 ios.width(25);
   7258                                 right(ios);
   7259                                 {
   7260                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7261                                     std::string ex(str, iter.base());
   7262                                     assert(ex == "*****************0.000000");
   7263                                     assert(ios.width() == 0);
   7264                                 }
   7265                                 ios.width(25);
   7266                                 internal(ios);
   7267                                 {
   7268                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7269                                     std::string ex(str, iter.base());
   7270                                     assert(ex == "*****************0.000000");
   7271                                     assert(ios.width() == 0);
   7272                                 }
   7273                             }
   7274                             ios.imbue(lg);
   7275                             {
   7276                                 ios.width(0);
   7277                                 {
   7278                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7279                                     std::string ex(str, iter.base());
   7280                                     assert(ex == "0;000000");
   7281                                     assert(ios.width() == 0);
   7282                                 }
   7283                                 ios.width(25);
   7284                                 left(ios);
   7285                                 {
   7286                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7287                                     std::string ex(str, iter.base());
   7288                                     assert(ex == "0;000000*****************");
   7289                                     assert(ios.width() == 0);
   7290                                 }
   7291                                 ios.width(25);
   7292                                 right(ios);
   7293                                 {
   7294                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7295                                     std::string ex(str, iter.base());
   7296                                     assert(ex == "*****************0;000000");
   7297                                     assert(ios.width() == 0);
   7298                                 }
   7299                                 ios.width(25);
   7300                                 internal(ios);
   7301                                 {
   7302                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7303                                     std::string ex(str, iter.base());
   7304                                     assert(ex == "*****************0;000000");
   7305                                     assert(ios.width() == 0);
   7306                                 }
   7307                             }
   7308                         }
   7309                     }
   7310                     showpos(ios);
   7311                     {
   7312                         noshowpoint(ios);
   7313                         {
   7314                             ios.imbue(lc);
   7315                             {
   7316                                 ios.width(0);
   7317                                 {
   7318                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7319                                     std::string ex(str, iter.base());
   7320                                     assert(ex == "+0.000000");
   7321                                     assert(ios.width() == 0);
   7322                                 }
   7323                                 ios.width(25);
   7324                                 left(ios);
   7325                                 {
   7326                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7327                                     std::string ex(str, iter.base());
   7328                                     assert(ex == "+0.000000****************");
   7329                                     assert(ios.width() == 0);
   7330                                 }
   7331                                 ios.width(25);
   7332                                 right(ios);
   7333                                 {
   7334                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7335                                     std::string ex(str, iter.base());
   7336                                     assert(ex == "****************+0.000000");
   7337                                     assert(ios.width() == 0);
   7338                                 }
   7339                                 ios.width(25);
   7340                                 internal(ios);
   7341                                 {
   7342                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7343                                     std::string ex(str, iter.base());
   7344                                     assert(ex == "+****************0.000000");
   7345                                     assert(ios.width() == 0);
   7346                                 }
   7347                             }
   7348                             ios.imbue(lg);
   7349                             {
   7350                                 ios.width(0);
   7351                                 {
   7352                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7353                                     std::string ex(str, iter.base());
   7354                                     assert(ex == "+0;000000");
   7355                                     assert(ios.width() == 0);
   7356                                 }
   7357                                 ios.width(25);
   7358                                 left(ios);
   7359                                 {
   7360                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7361                                     std::string ex(str, iter.base());
   7362                                     assert(ex == "+0;000000****************");
   7363                                     assert(ios.width() == 0);
   7364                                 }
   7365                                 ios.width(25);
   7366                                 right(ios);
   7367                                 {
   7368                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7369                                     std::string ex(str, iter.base());
   7370                                     assert(ex == "****************+0;000000");
   7371                                     assert(ios.width() == 0);
   7372                                 }
   7373                                 ios.width(25);
   7374                                 internal(ios);
   7375                                 {
   7376                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7377                                     std::string ex(str, iter.base());
   7378                                     assert(ex == "+****************0;000000");
   7379                                     assert(ios.width() == 0);
   7380                                 }
   7381                             }
   7382                         }
   7383                         showpoint(ios);
   7384                         {
   7385                             ios.imbue(lc);
   7386                             {
   7387                                 ios.width(0);
   7388                                 {
   7389                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7390                                     std::string ex(str, iter.base());
   7391                                     assert(ex == "+0.000000");
   7392                                     assert(ios.width() == 0);
   7393                                 }
   7394                                 ios.width(25);
   7395                                 left(ios);
   7396                                 {
   7397                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7398                                     std::string ex(str, iter.base());
   7399                                     assert(ex == "+0.000000****************");
   7400                                     assert(ios.width() == 0);
   7401                                 }
   7402                                 ios.width(25);
   7403                                 right(ios);
   7404                                 {
   7405                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7406                                     std::string ex(str, iter.base());
   7407                                     assert(ex == "****************+0.000000");
   7408                                     assert(ios.width() == 0);
   7409                                 }
   7410                                 ios.width(25);
   7411                                 internal(ios);
   7412                                 {
   7413                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7414                                     std::string ex(str, iter.base());
   7415                                     assert(ex == "+****************0.000000");
   7416                                     assert(ios.width() == 0);
   7417                                 }
   7418                             }
   7419                             ios.imbue(lg);
   7420                             {
   7421                                 ios.width(0);
   7422                                 {
   7423                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7424                                     std::string ex(str, iter.base());
   7425                                     assert(ex == "+0;000000");
   7426                                     assert(ios.width() == 0);
   7427                                 }
   7428                                 ios.width(25);
   7429                                 left(ios);
   7430                                 {
   7431                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7432                                     std::string ex(str, iter.base());
   7433                                     assert(ex == "+0;000000****************");
   7434                                     assert(ios.width() == 0);
   7435                                 }
   7436                                 ios.width(25);
   7437                                 right(ios);
   7438                                 {
   7439                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7440                                     std::string ex(str, iter.base());
   7441                                     assert(ex == "****************+0;000000");
   7442                                     assert(ios.width() == 0);
   7443                                 }
   7444                                 ios.width(25);
   7445                                 internal(ios);
   7446                                 {
   7447                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7448                                     std::string ex(str, iter.base());
   7449                                     assert(ex == "+****************0;000000");
   7450                                     assert(ios.width() == 0);
   7451                                 }
   7452                             }
   7453                         }
   7454                     }
   7455                 }
   7456                 uppercase(ios);
   7457                 {
   7458                     noshowpos(ios);
   7459                     {
   7460                         noshowpoint(ios);
   7461                         {
   7462                             ios.imbue(lc);
   7463                             {
   7464                                 ios.width(0);
   7465                                 {
   7466                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7467                                     std::string ex(str, iter.base());
   7468                                     assert(ex == "0.000000");
   7469                                     assert(ios.width() == 0);
   7470                                 }
   7471                                 ios.width(25);
   7472                                 left(ios);
   7473                                 {
   7474                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7475                                     std::string ex(str, iter.base());
   7476                                     assert(ex == "0.000000*****************");
   7477                                     assert(ios.width() == 0);
   7478                                 }
   7479                                 ios.width(25);
   7480                                 right(ios);
   7481                                 {
   7482                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7483                                     std::string ex(str, iter.base());
   7484                                     assert(ex == "*****************0.000000");
   7485                                     assert(ios.width() == 0);
   7486                                 }
   7487                                 ios.width(25);
   7488                                 internal(ios);
   7489                                 {
   7490                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7491                                     std::string ex(str, iter.base());
   7492                                     assert(ex == "*****************0.000000");
   7493                                     assert(ios.width() == 0);
   7494                                 }
   7495                             }
   7496                             ios.imbue(lg);
   7497                             {
   7498                                 ios.width(0);
   7499                                 {
   7500                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7501                                     std::string ex(str, iter.base());
   7502                                     assert(ex == "0;000000");
   7503                                     assert(ios.width() == 0);
   7504                                 }
   7505                                 ios.width(25);
   7506                                 left(ios);
   7507                                 {
   7508                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7509                                     std::string ex(str, iter.base());
   7510                                     assert(ex == "0;000000*****************");
   7511                                     assert(ios.width() == 0);
   7512                                 }
   7513                                 ios.width(25);
   7514                                 right(ios);
   7515                                 {
   7516                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7517                                     std::string ex(str, iter.base());
   7518                                     assert(ex == "*****************0;000000");
   7519                                     assert(ios.width() == 0);
   7520                                 }
   7521                                 ios.width(25);
   7522                                 internal(ios);
   7523                                 {
   7524                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7525                                     std::string ex(str, iter.base());
   7526                                     assert(ex == "*****************0;000000");
   7527                                     assert(ios.width() == 0);
   7528                                 }
   7529                             }
   7530                         }
   7531                         showpoint(ios);
   7532                         {
   7533                             ios.imbue(lc);
   7534                             {
   7535                                 ios.width(0);
   7536                                 {
   7537                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7538                                     std::string ex(str, iter.base());
   7539                                     assert(ex == "0.000000");
   7540                                     assert(ios.width() == 0);
   7541                                 }
   7542                                 ios.width(25);
   7543                                 left(ios);
   7544                                 {
   7545                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7546                                     std::string ex(str, iter.base());
   7547                                     assert(ex == "0.000000*****************");
   7548                                     assert(ios.width() == 0);
   7549                                 }
   7550                                 ios.width(25);
   7551                                 right(ios);
   7552                                 {
   7553                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7554                                     std::string ex(str, iter.base());
   7555                                     assert(ex == "*****************0.000000");
   7556                                     assert(ios.width() == 0);
   7557                                 }
   7558                                 ios.width(25);
   7559                                 internal(ios);
   7560                                 {
   7561                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7562                                     std::string ex(str, iter.base());
   7563                                     assert(ex == "*****************0.000000");
   7564                                     assert(ios.width() == 0);
   7565                                 }
   7566                             }
   7567                             ios.imbue(lg);
   7568                             {
   7569                                 ios.width(0);
   7570                                 {
   7571                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7572                                     std::string ex(str, iter.base());
   7573                                     assert(ex == "0;000000");
   7574                                     assert(ios.width() == 0);
   7575                                 }
   7576                                 ios.width(25);
   7577                                 left(ios);
   7578                                 {
   7579                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7580                                     std::string ex(str, iter.base());
   7581                                     assert(ex == "0;000000*****************");
   7582                                     assert(ios.width() == 0);
   7583                                 }
   7584                                 ios.width(25);
   7585                                 right(ios);
   7586                                 {
   7587                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7588                                     std::string ex(str, iter.base());
   7589                                     assert(ex == "*****************0;000000");
   7590                                     assert(ios.width() == 0);
   7591                                 }
   7592                                 ios.width(25);
   7593                                 internal(ios);
   7594                                 {
   7595                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7596                                     std::string ex(str, iter.base());
   7597                                     assert(ex == "*****************0;000000");
   7598                                     assert(ios.width() == 0);
   7599                                 }
   7600                             }
   7601                         }
   7602                     }
   7603                     showpos(ios);
   7604                     {
   7605                         noshowpoint(ios);
   7606                         {
   7607                             ios.imbue(lc);
   7608                             {
   7609                                 ios.width(0);
   7610                                 {
   7611                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7612                                     std::string ex(str, iter.base());
   7613                                     assert(ex == "+0.000000");
   7614                                     assert(ios.width() == 0);
   7615                                 }
   7616                                 ios.width(25);
   7617                                 left(ios);
   7618                                 {
   7619                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7620                                     std::string ex(str, iter.base());
   7621                                     assert(ex == "+0.000000****************");
   7622                                     assert(ios.width() == 0);
   7623                                 }
   7624                                 ios.width(25);
   7625                                 right(ios);
   7626                                 {
   7627                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7628                                     std::string ex(str, iter.base());
   7629                                     assert(ex == "****************+0.000000");
   7630                                     assert(ios.width() == 0);
   7631                                 }
   7632                                 ios.width(25);
   7633                                 internal(ios);
   7634                                 {
   7635                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7636                                     std::string ex(str, iter.base());
   7637                                     assert(ex == "+****************0.000000");
   7638                                     assert(ios.width() == 0);
   7639                                 }
   7640                             }
   7641                             ios.imbue(lg);
   7642                             {
   7643                                 ios.width(0);
   7644                                 {
   7645                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7646                                     std::string ex(str, iter.base());
   7647                                     assert(ex == "+0;000000");
   7648                                     assert(ios.width() == 0);
   7649                                 }
   7650                                 ios.width(25);
   7651                                 left(ios);
   7652                                 {
   7653                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7654                                     std::string ex(str, iter.base());
   7655                                     assert(ex == "+0;000000****************");
   7656                                     assert(ios.width() == 0);
   7657                                 }
   7658                                 ios.width(25);
   7659                                 right(ios);
   7660                                 {
   7661                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7662                                     std::string ex(str, iter.base());
   7663                                     assert(ex == "****************+0;000000");
   7664                                     assert(ios.width() == 0);
   7665                                 }
   7666                                 ios.width(25);
   7667                                 internal(ios);
   7668                                 {
   7669                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7670                                     std::string ex(str, iter.base());
   7671                                     assert(ex == "+****************0;000000");
   7672                                     assert(ios.width() == 0);
   7673                                 }
   7674                             }
   7675                         }
   7676                         showpoint(ios);
   7677                         {
   7678                             ios.imbue(lc);
   7679                             {
   7680                                 ios.width(0);
   7681                                 {
   7682                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7683                                     std::string ex(str, iter.base());
   7684                                     assert(ex == "+0.000000");
   7685                                     assert(ios.width() == 0);
   7686                                 }
   7687                                 ios.width(25);
   7688                                 left(ios);
   7689                                 {
   7690                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7691                                     std::string ex(str, iter.base());
   7692                                     assert(ex == "+0.000000****************");
   7693                                     assert(ios.width() == 0);
   7694                                 }
   7695                                 ios.width(25);
   7696                                 right(ios);
   7697                                 {
   7698                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7699                                     std::string ex(str, iter.base());
   7700                                     assert(ex == "****************+0.000000");
   7701                                     assert(ios.width() == 0);
   7702                                 }
   7703                                 ios.width(25);
   7704                                 internal(ios);
   7705                                 {
   7706                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7707                                     std::string ex(str, iter.base());
   7708                                     assert(ex == "+****************0.000000");
   7709                                     assert(ios.width() == 0);
   7710                                 }
   7711                             }
   7712                             ios.imbue(lg);
   7713                             {
   7714                                 ios.width(0);
   7715                                 {
   7716                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7717                                     std::string ex(str, iter.base());
   7718                                     assert(ex == "+0;000000");
   7719                                     assert(ios.width() == 0);
   7720                                 }
   7721                                 ios.width(25);
   7722                                 left(ios);
   7723                                 {
   7724                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7725                                     std::string ex(str, iter.base());
   7726                                     assert(ex == "+0;000000****************");
   7727                                     assert(ios.width() == 0);
   7728                                 }
   7729                                 ios.width(25);
   7730                                 right(ios);
   7731                                 {
   7732                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7733                                     std::string ex(str, iter.base());
   7734                                     assert(ex == "****************+0;000000");
   7735                                     assert(ios.width() == 0);
   7736                                 }
   7737                                 ios.width(25);
   7738                                 internal(ios);
   7739                                 {
   7740                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7741                                     std::string ex(str, iter.base());
   7742                                     assert(ex == "+****************0;000000");
   7743                                     assert(ios.width() == 0);
   7744                                 }
   7745                             }
   7746                         }
   7747                     }
   7748                 }
   7749             }
   7750             ios.precision(16);
   7751             {
   7752                 nouppercase(ios);
   7753                 {
   7754                     noshowpos(ios);
   7755                     {
   7756                         noshowpoint(ios);
   7757                         {
   7758                             ios.imbue(lc);
   7759                             {
   7760                                 ios.width(0);
   7761                                 {
   7762                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7763                                     std::string ex(str, iter.base());
   7764                                     assert(ex == "0.0000000000000000");
   7765                                     assert(ios.width() == 0);
   7766                                 }
   7767                                 ios.width(25);
   7768                                 left(ios);
   7769                                 {
   7770                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7771                                     std::string ex(str, iter.base());
   7772                                     assert(ex == "0.0000000000000000*******");
   7773                                     assert(ios.width() == 0);
   7774                                 }
   7775                                 ios.width(25);
   7776                                 right(ios);
   7777                                 {
   7778                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7779                                     std::string ex(str, iter.base());
   7780                                     assert(ex == "*******0.0000000000000000");
   7781                                     assert(ios.width() == 0);
   7782                                 }
   7783                                 ios.width(25);
   7784                                 internal(ios);
   7785                                 {
   7786                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7787                                     std::string ex(str, iter.base());
   7788                                     assert(ex == "*******0.0000000000000000");
   7789                                     assert(ios.width() == 0);
   7790                                 }
   7791                             }
   7792                             ios.imbue(lg);
   7793                             {
   7794                                 ios.width(0);
   7795                                 {
   7796                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7797                                     std::string ex(str, iter.base());
   7798                                     assert(ex == "0;0000000000000000");
   7799                                     assert(ios.width() == 0);
   7800                                 }
   7801                                 ios.width(25);
   7802                                 left(ios);
   7803                                 {
   7804                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7805                                     std::string ex(str, iter.base());
   7806                                     assert(ex == "0;0000000000000000*******");
   7807                                     assert(ios.width() == 0);
   7808                                 }
   7809                                 ios.width(25);
   7810                                 right(ios);
   7811                                 {
   7812                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7813                                     std::string ex(str, iter.base());
   7814                                     assert(ex == "*******0;0000000000000000");
   7815                                     assert(ios.width() == 0);
   7816                                 }
   7817                                 ios.width(25);
   7818                                 internal(ios);
   7819                                 {
   7820                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7821                                     std::string ex(str, iter.base());
   7822                                     assert(ex == "*******0;0000000000000000");
   7823                                     assert(ios.width() == 0);
   7824                                 }
   7825                             }
   7826                         }
   7827                         showpoint(ios);
   7828                         {
   7829                             ios.imbue(lc);
   7830                             {
   7831                                 ios.width(0);
   7832                                 {
   7833                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7834                                     std::string ex(str, iter.base());
   7835                                     assert(ex == "0.0000000000000000");
   7836                                     assert(ios.width() == 0);
   7837                                 }
   7838                                 ios.width(25);
   7839                                 left(ios);
   7840                                 {
   7841                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7842                                     std::string ex(str, iter.base());
   7843                                     assert(ex == "0.0000000000000000*******");
   7844                                     assert(ios.width() == 0);
   7845                                 }
   7846                                 ios.width(25);
   7847                                 right(ios);
   7848                                 {
   7849                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7850                                     std::string ex(str, iter.base());
   7851                                     assert(ex == "*******0.0000000000000000");
   7852                                     assert(ios.width() == 0);
   7853                                 }
   7854                                 ios.width(25);
   7855                                 internal(ios);
   7856                                 {
   7857                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7858                                     std::string ex(str, iter.base());
   7859                                     assert(ex == "*******0.0000000000000000");
   7860                                     assert(ios.width() == 0);
   7861                                 }
   7862                             }
   7863                             ios.imbue(lg);
   7864                             {
   7865                                 ios.width(0);
   7866                                 {
   7867                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7868                                     std::string ex(str, iter.base());
   7869                                     assert(ex == "0;0000000000000000");
   7870                                     assert(ios.width() == 0);
   7871                                 }
   7872                                 ios.width(25);
   7873                                 left(ios);
   7874                                 {
   7875                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7876                                     std::string ex(str, iter.base());
   7877                                     assert(ex == "0;0000000000000000*******");
   7878                                     assert(ios.width() == 0);
   7879                                 }
   7880                                 ios.width(25);
   7881                                 right(ios);
   7882                                 {
   7883                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7884                                     std::string ex(str, iter.base());
   7885                                     assert(ex == "*******0;0000000000000000");
   7886                                     assert(ios.width() == 0);
   7887                                 }
   7888                                 ios.width(25);
   7889                                 internal(ios);
   7890                                 {
   7891                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7892                                     std::string ex(str, iter.base());
   7893                                     assert(ex == "*******0;0000000000000000");
   7894                                     assert(ios.width() == 0);
   7895                                 }
   7896                             }
   7897                         }
   7898                     }
   7899                     showpos(ios);
   7900                     {
   7901                         noshowpoint(ios);
   7902                         {
   7903                             ios.imbue(lc);
   7904                             {
   7905                                 ios.width(0);
   7906                                 {
   7907                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7908                                     std::string ex(str, iter.base());
   7909                                     assert(ex == "+0.0000000000000000");
   7910                                     assert(ios.width() == 0);
   7911                                 }
   7912                                 ios.width(25);
   7913                                 left(ios);
   7914                                 {
   7915                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7916                                     std::string ex(str, iter.base());
   7917                                     assert(ex == "+0.0000000000000000******");
   7918                                     assert(ios.width() == 0);
   7919                                 }
   7920                                 ios.width(25);
   7921                                 right(ios);
   7922                                 {
   7923                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7924                                     std::string ex(str, iter.base());
   7925                                     assert(ex == "******+0.0000000000000000");
   7926                                     assert(ios.width() == 0);
   7927                                 }
   7928                                 ios.width(25);
   7929                                 internal(ios);
   7930                                 {
   7931                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7932                                     std::string ex(str, iter.base());
   7933                                     assert(ex == "+******0.0000000000000000");
   7934                                     assert(ios.width() == 0);
   7935                                 }
   7936                             }
   7937                             ios.imbue(lg);
   7938                             {
   7939                                 ios.width(0);
   7940                                 {
   7941                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7942                                     std::string ex(str, iter.base());
   7943                                     assert(ex == "+0;0000000000000000");
   7944                                     assert(ios.width() == 0);
   7945                                 }
   7946                                 ios.width(25);
   7947                                 left(ios);
   7948                                 {
   7949                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7950                                     std::string ex(str, iter.base());
   7951                                     assert(ex == "+0;0000000000000000******");
   7952                                     assert(ios.width() == 0);
   7953                                 }
   7954                                 ios.width(25);
   7955                                 right(ios);
   7956                                 {
   7957                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7958                                     std::string ex(str, iter.base());
   7959                                     assert(ex == "******+0;0000000000000000");
   7960                                     assert(ios.width() == 0);
   7961                                 }
   7962                                 ios.width(25);
   7963                                 internal(ios);
   7964                                 {
   7965                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7966                                     std::string ex(str, iter.base());
   7967                                     assert(ex == "+******0;0000000000000000");
   7968                                     assert(ios.width() == 0);
   7969                                 }
   7970                             }
   7971                         }
   7972                         showpoint(ios);
   7973                         {
   7974                             ios.imbue(lc);
   7975                             {
   7976                                 ios.width(0);
   7977                                 {
   7978                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7979                                     std::string ex(str, iter.base());
   7980                                     assert(ex == "+0.0000000000000000");
   7981                                     assert(ios.width() == 0);
   7982                                 }
   7983                                 ios.width(25);
   7984                                 left(ios);
   7985                                 {
   7986                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7987                                     std::string ex(str, iter.base());
   7988                                     assert(ex == "+0.0000000000000000******");
   7989                                     assert(ios.width() == 0);
   7990                                 }
   7991                                 ios.width(25);
   7992                                 right(ios);
   7993                                 {
   7994                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   7995                                     std::string ex(str, iter.base());
   7996                                     assert(ex == "******+0.0000000000000000");
   7997                                     assert(ios.width() == 0);
   7998                                 }
   7999                                 ios.width(25);
   8000                                 internal(ios);
   8001                                 {
   8002                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8003                                     std::string ex(str, iter.base());
   8004                                     assert(ex == "+******0.0000000000000000");
   8005                                     assert(ios.width() == 0);
   8006                                 }
   8007                             }
   8008                             ios.imbue(lg);
   8009                             {
   8010                                 ios.width(0);
   8011                                 {
   8012                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8013                                     std::string ex(str, iter.base());
   8014                                     assert(ex == "+0;0000000000000000");
   8015                                     assert(ios.width() == 0);
   8016                                 }
   8017                                 ios.width(25);
   8018                                 left(ios);
   8019                                 {
   8020                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8021                                     std::string ex(str, iter.base());
   8022                                     assert(ex == "+0;0000000000000000******");
   8023                                     assert(ios.width() == 0);
   8024                                 }
   8025                                 ios.width(25);
   8026                                 right(ios);
   8027                                 {
   8028                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8029                                     std::string ex(str, iter.base());
   8030                                     assert(ex == "******+0;0000000000000000");
   8031                                     assert(ios.width() == 0);
   8032                                 }
   8033                                 ios.width(25);
   8034                                 internal(ios);
   8035                                 {
   8036                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8037                                     std::string ex(str, iter.base());
   8038                                     assert(ex == "+******0;0000000000000000");
   8039                                     assert(ios.width() == 0);
   8040                                 }
   8041                             }
   8042                         }
   8043                     }
   8044                 }
   8045                 uppercase(ios);
   8046                 {
   8047                     noshowpos(ios);
   8048                     {
   8049                         noshowpoint(ios);
   8050                         {
   8051                             ios.imbue(lc);
   8052                             {
   8053                                 ios.width(0);
   8054                                 {
   8055                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8056                                     std::string ex(str, iter.base());
   8057                                     assert(ex == "0.0000000000000000");
   8058                                     assert(ios.width() == 0);
   8059                                 }
   8060                                 ios.width(25);
   8061                                 left(ios);
   8062                                 {
   8063                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8064                                     std::string ex(str, iter.base());
   8065                                     assert(ex == "0.0000000000000000*******");
   8066                                     assert(ios.width() == 0);
   8067                                 }
   8068                                 ios.width(25);
   8069                                 right(ios);
   8070                                 {
   8071                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8072                                     std::string ex(str, iter.base());
   8073                                     assert(ex == "*******0.0000000000000000");
   8074                                     assert(ios.width() == 0);
   8075                                 }
   8076                                 ios.width(25);
   8077                                 internal(ios);
   8078                                 {
   8079                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8080                                     std::string ex(str, iter.base());
   8081                                     assert(ex == "*******0.0000000000000000");
   8082                                     assert(ios.width() == 0);
   8083                                 }
   8084                             }
   8085                             ios.imbue(lg);
   8086                             {
   8087                                 ios.width(0);
   8088                                 {
   8089                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8090                                     std::string ex(str, iter.base());
   8091                                     assert(ex == "0;0000000000000000");
   8092                                     assert(ios.width() == 0);
   8093                                 }
   8094                                 ios.width(25);
   8095                                 left(ios);
   8096                                 {
   8097                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8098                                     std::string ex(str, iter.base());
   8099                                     assert(ex == "0;0000000000000000*******");
   8100                                     assert(ios.width() == 0);
   8101                                 }
   8102                                 ios.width(25);
   8103                                 right(ios);
   8104                                 {
   8105                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8106                                     std::string ex(str, iter.base());
   8107                                     assert(ex == "*******0;0000000000000000");
   8108                                     assert(ios.width() == 0);
   8109                                 }
   8110                                 ios.width(25);
   8111                                 internal(ios);
   8112                                 {
   8113                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8114                                     std::string ex(str, iter.base());
   8115                                     assert(ex == "*******0;0000000000000000");
   8116                                     assert(ios.width() == 0);
   8117                                 }
   8118                             }
   8119                         }
   8120                         showpoint(ios);
   8121                         {
   8122                             ios.imbue(lc);
   8123                             {
   8124                                 ios.width(0);
   8125                                 {
   8126                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8127                                     std::string ex(str, iter.base());
   8128                                     assert(ex == "0.0000000000000000");
   8129                                     assert(ios.width() == 0);
   8130                                 }
   8131                                 ios.width(25);
   8132                                 left(ios);
   8133                                 {
   8134                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8135                                     std::string ex(str, iter.base());
   8136                                     assert(ex == "0.0000000000000000*******");
   8137                                     assert(ios.width() == 0);
   8138                                 }
   8139                                 ios.width(25);
   8140                                 right(ios);
   8141                                 {
   8142                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8143                                     std::string ex(str, iter.base());
   8144                                     assert(ex == "*******0.0000000000000000");
   8145                                     assert(ios.width() == 0);
   8146                                 }
   8147                                 ios.width(25);
   8148                                 internal(ios);
   8149                                 {
   8150                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8151                                     std::string ex(str, iter.base());
   8152                                     assert(ex == "*******0.0000000000000000");
   8153                                     assert(ios.width() == 0);
   8154                                 }
   8155                             }
   8156                             ios.imbue(lg);
   8157                             {
   8158                                 ios.width(0);
   8159                                 {
   8160                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8161                                     std::string ex(str, iter.base());
   8162                                     assert(ex == "0;0000000000000000");
   8163                                     assert(ios.width() == 0);
   8164                                 }
   8165                                 ios.width(25);
   8166                                 left(ios);
   8167                                 {
   8168                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8169                                     std::string ex(str, iter.base());
   8170                                     assert(ex == "0;0000000000000000*******");
   8171                                     assert(ios.width() == 0);
   8172                                 }
   8173                                 ios.width(25);
   8174                                 right(ios);
   8175                                 {
   8176                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8177                                     std::string ex(str, iter.base());
   8178                                     assert(ex == "*******0;0000000000000000");
   8179                                     assert(ios.width() == 0);
   8180                                 }
   8181                                 ios.width(25);
   8182                                 internal(ios);
   8183                                 {
   8184                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8185                                     std::string ex(str, iter.base());
   8186                                     assert(ex == "*******0;0000000000000000");
   8187                                     assert(ios.width() == 0);
   8188                                 }
   8189                             }
   8190                         }
   8191                     }
   8192                     showpos(ios);
   8193                     {
   8194                         noshowpoint(ios);
   8195                         {
   8196                             ios.imbue(lc);
   8197                             {
   8198                                 ios.width(0);
   8199                                 {
   8200                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8201                                     std::string ex(str, iter.base());
   8202                                     assert(ex == "+0.0000000000000000");
   8203                                     assert(ios.width() == 0);
   8204                                 }
   8205                                 ios.width(25);
   8206                                 left(ios);
   8207                                 {
   8208                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8209                                     std::string ex(str, iter.base());
   8210                                     assert(ex == "+0.0000000000000000******");
   8211                                     assert(ios.width() == 0);
   8212                                 }
   8213                                 ios.width(25);
   8214                                 right(ios);
   8215                                 {
   8216                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8217                                     std::string ex(str, iter.base());
   8218                                     assert(ex == "******+0.0000000000000000");
   8219                                     assert(ios.width() == 0);
   8220                                 }
   8221                                 ios.width(25);
   8222                                 internal(ios);
   8223                                 {
   8224                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8225                                     std::string ex(str, iter.base());
   8226                                     assert(ex == "+******0.0000000000000000");
   8227                                     assert(ios.width() == 0);
   8228                                 }
   8229                             }
   8230                             ios.imbue(lg);
   8231                             {
   8232                                 ios.width(0);
   8233                                 {
   8234                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8235                                     std::string ex(str, iter.base());
   8236                                     assert(ex == "+0;0000000000000000");
   8237                                     assert(ios.width() == 0);
   8238                                 }
   8239                                 ios.width(25);
   8240                                 left(ios);
   8241                                 {
   8242                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8243                                     std::string ex(str, iter.base());
   8244                                     assert(ex == "+0;0000000000000000******");
   8245                                     assert(ios.width() == 0);
   8246                                 }
   8247                                 ios.width(25);
   8248                                 right(ios);
   8249                                 {
   8250                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8251                                     std::string ex(str, iter.base());
   8252                                     assert(ex == "******+0;0000000000000000");
   8253                                     assert(ios.width() == 0);
   8254                                 }
   8255                                 ios.width(25);
   8256                                 internal(ios);
   8257                                 {
   8258                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8259                                     std::string ex(str, iter.base());
   8260                                     assert(ex == "+******0;0000000000000000");
   8261                                     assert(ios.width() == 0);
   8262                                 }
   8263                             }
   8264                         }
   8265                         showpoint(ios);
   8266                         {
   8267                             ios.imbue(lc);
   8268                             {
   8269                                 ios.width(0);
   8270                                 {
   8271                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8272                                     std::string ex(str, iter.base());
   8273                                     assert(ex == "+0.0000000000000000");
   8274                                     assert(ios.width() == 0);
   8275                                 }
   8276                                 ios.width(25);
   8277                                 left(ios);
   8278                                 {
   8279                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8280                                     std::string ex(str, iter.base());
   8281                                     assert(ex == "+0.0000000000000000******");
   8282                                     assert(ios.width() == 0);
   8283                                 }
   8284                                 ios.width(25);
   8285                                 right(ios);
   8286                                 {
   8287                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8288                                     std::string ex(str, iter.base());
   8289                                     assert(ex == "******+0.0000000000000000");
   8290                                     assert(ios.width() == 0);
   8291                                 }
   8292                                 ios.width(25);
   8293                                 internal(ios);
   8294                                 {
   8295                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8296                                     std::string ex(str, iter.base());
   8297                                     assert(ex == "+******0.0000000000000000");
   8298                                     assert(ios.width() == 0);
   8299                                 }
   8300                             }
   8301                             ios.imbue(lg);
   8302                             {
   8303                                 ios.width(0);
   8304                                 {
   8305                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8306                                     std::string ex(str, iter.base());
   8307                                     assert(ex == "+0;0000000000000000");
   8308                                     assert(ios.width() == 0);
   8309                                 }
   8310                                 ios.width(25);
   8311                                 left(ios);
   8312                                 {
   8313                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8314                                     std::string ex(str, iter.base());
   8315                                     assert(ex == "+0;0000000000000000******");
   8316                                     assert(ios.width() == 0);
   8317                                 }
   8318                                 ios.width(25);
   8319                                 right(ios);
   8320                                 {
   8321                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8322                                     std::string ex(str, iter.base());
   8323                                     assert(ex == "******+0;0000000000000000");
   8324                                     assert(ios.width() == 0);
   8325                                 }
   8326                                 ios.width(25);
   8327                                 internal(ios);
   8328                                 {
   8329                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8330                                     std::string ex(str, iter.base());
   8331                                     assert(ex == "+******0;0000000000000000");
   8332                                     assert(ios.width() == 0);
   8333                                 }
   8334                             }
   8335                         }
   8336                     }
   8337                 }
   8338             }
   8339             ios.precision(60);
   8340             {
   8341                 nouppercase(ios);
   8342                 {
   8343                     noshowpos(ios);
   8344                     {
   8345                         noshowpoint(ios);
   8346                         {
   8347                             ios.imbue(lc);
   8348                             {
   8349                                 ios.width(0);
   8350                                 {
   8351                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8352                                     std::string ex(str, iter.base());
   8353                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
   8354                                     assert(ios.width() == 0);
   8355                                 }
   8356                                 ios.width(25);
   8357                                 left(ios);
   8358                                 {
   8359                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8360                                     std::string ex(str, iter.base());
   8361                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
   8362                                     assert(ios.width() == 0);
   8363                                 }
   8364                                 ios.width(25);
   8365                                 right(ios);
   8366                                 {
   8367                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8368                                     std::string ex(str, iter.base());
   8369                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
   8370                                     assert(ios.width() == 0);
   8371                                 }
   8372                                 ios.width(25);
   8373                                 internal(ios);
   8374                                 {
   8375                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8376                                     std::string ex(str, iter.base());
   8377                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
   8378                                     assert(ios.width() == 0);
   8379                                 }
   8380                             }
   8381                             ios.imbue(lg);
   8382                             {
   8383                                 ios.width(0);
   8384                                 {
   8385                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8386                                     std::string ex(str, iter.base());
   8387                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
   8388                                     assert(ios.width() == 0);
   8389                                 }
   8390                                 ios.width(25);
   8391                                 left(ios);
   8392                                 {
   8393                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8394                                     std::string ex(str, iter.base());
   8395                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
   8396                                     assert(ios.width() == 0);
   8397                                 }
   8398                                 ios.width(25);
   8399                                 right(ios);
   8400                                 {
   8401                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8402                                     std::string ex(str, iter.base());
   8403                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
   8404                                     assert(ios.width() == 0);
   8405                                 }
   8406                                 ios.width(25);
   8407                                 internal(ios);
   8408                                 {
   8409                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8410                                     std::string ex(str, iter.base());
   8411                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
   8412                                     assert(ios.width() == 0);
   8413                                 }
   8414                             }
   8415                         }
   8416                         showpoint(ios);
   8417                         {
   8418                             ios.imbue(lc);
   8419                             {
   8420                                 ios.width(0);
   8421                                 {
   8422                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8423                                     std::string ex(str, iter.base());
   8424                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
   8425                                     assert(ios.width() == 0);
   8426                                 }
   8427                                 ios.width(25);
   8428                                 left(ios);
   8429                                 {
   8430                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8431                                     std::string ex(str, iter.base());
   8432                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
   8433                                     assert(ios.width() == 0);
   8434                                 }
   8435                                 ios.width(25);
   8436                                 right(ios);
   8437                                 {
   8438                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8439                                     std::string ex(str, iter.base());
   8440                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
   8441                                     assert(ios.width() == 0);
   8442                                 }
   8443                                 ios.width(25);
   8444                                 internal(ios);
   8445                                 {
   8446                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8447                                     std::string ex(str, iter.base());
   8448                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
   8449                                     assert(ios.width() == 0);
   8450                                 }
   8451                             }
   8452                             ios.imbue(lg);
   8453                             {
   8454                                 ios.width(0);
   8455                                 {
   8456                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8457                                     std::string ex(str, iter.base());
   8458                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
   8459                                     assert(ios.width() == 0);
   8460                                 }
   8461                                 ios.width(25);
   8462                                 left(ios);
   8463                                 {
   8464                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8465                                     std::string ex(str, iter.base());
   8466                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
   8467                                     assert(ios.width() == 0);
   8468                                 }
   8469                                 ios.width(25);
   8470                                 right(ios);
   8471                                 {
   8472                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8473                                     std::string ex(str, iter.base());
   8474                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
   8475                                     assert(ios.width() == 0);
   8476                                 }
   8477                                 ios.width(25);
   8478                                 internal(ios);
   8479                                 {
   8480                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8481                                     std::string ex(str, iter.base());
   8482                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
   8483                                     assert(ios.width() == 0);
   8484                                 }
   8485                             }
   8486                         }
   8487                     }
   8488                     showpos(ios);
   8489                     {
   8490                         noshowpoint(ios);
   8491                         {
   8492                             ios.imbue(lc);
   8493                             {
   8494                                 ios.width(0);
   8495                                 {
   8496                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8497                                     std::string ex(str, iter.base());
   8498                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
   8499                                     assert(ios.width() == 0);
   8500                                 }
   8501                                 ios.width(25);
   8502                                 left(ios);
   8503                                 {
   8504                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8505                                     std::string ex(str, iter.base());
   8506                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
   8507                                     assert(ios.width() == 0);
   8508                                 }
   8509                                 ios.width(25);
   8510                                 right(ios);
   8511                                 {
   8512                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8513                                     std::string ex(str, iter.base());
   8514                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
   8515                                     assert(ios.width() == 0);
   8516                                 }
   8517                                 ios.width(25);
   8518                                 internal(ios);
   8519                                 {
   8520                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8521                                     std::string ex(str, iter.base());
   8522                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
   8523                                     assert(ios.width() == 0);
   8524                                 }
   8525                             }
   8526                             ios.imbue(lg);
   8527                             {
   8528                                 ios.width(0);
   8529                                 {
   8530                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8531                                     std::string ex(str, iter.base());
   8532                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
   8533                                     assert(ios.width() == 0);
   8534                                 }
   8535                                 ios.width(25);
   8536                                 left(ios);
   8537                                 {
   8538                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8539                                     std::string ex(str, iter.base());
   8540                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
   8541                                     assert(ios.width() == 0);
   8542                                 }
   8543                                 ios.width(25);
   8544                                 right(ios);
   8545                                 {
   8546                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8547                                     std::string ex(str, iter.base());
   8548                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
   8549                                     assert(ios.width() == 0);
   8550                                 }
   8551                                 ios.width(25);
   8552                                 internal(ios);
   8553                                 {
   8554                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8555                                     std::string ex(str, iter.base());
   8556                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
   8557                                     assert(ios.width() == 0);
   8558                                 }
   8559                             }
   8560                         }
   8561                         showpoint(ios);
   8562                         {
   8563                             ios.imbue(lc);
   8564                             {
   8565                                 ios.width(0);
   8566                                 {
   8567                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8568                                     std::string ex(str, iter.base());
   8569                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
   8570                                     assert(ios.width() == 0);
   8571                                 }
   8572                                 ios.width(25);
   8573                                 left(ios);
   8574                                 {
   8575                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8576                                     std::string ex(str, iter.base());
   8577                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
   8578                                     assert(ios.width() == 0);
   8579                                 }
   8580                                 ios.width(25);
   8581                                 right(ios);
   8582                                 {
   8583                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8584                                     std::string ex(str, iter.base());
   8585                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
   8586                                     assert(ios.width() == 0);
   8587                                 }
   8588                                 ios.width(25);
   8589                                 internal(ios);
   8590                                 {
   8591                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8592                                     std::string ex(str, iter.base());
   8593                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
   8594                                     assert(ios.width() == 0);
   8595                                 }
   8596                             }
   8597                             ios.imbue(lg);
   8598                             {
   8599                                 ios.width(0);
   8600                                 {
   8601                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8602                                     std::string ex(str, iter.base());
   8603                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
   8604                                     assert(ios.width() == 0);
   8605                                 }
   8606                                 ios.width(25);
   8607                                 left(ios);
   8608                                 {
   8609                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8610                                     std::string ex(str, iter.base());
   8611                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
   8612                                     assert(ios.width() == 0);
   8613                                 }
   8614                                 ios.width(25);
   8615                                 right(ios);
   8616                                 {
   8617                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8618                                     std::string ex(str, iter.base());
   8619                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
   8620                                     assert(ios.width() == 0);
   8621                                 }
   8622                                 ios.width(25);
   8623                                 internal(ios);
   8624                                 {
   8625                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8626                                     std::string ex(str, iter.base());
   8627                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
   8628                                     assert(ios.width() == 0);
   8629                                 }
   8630                             }
   8631                         }
   8632                     }
   8633                 }
   8634                 uppercase(ios);
   8635                 {
   8636                     noshowpos(ios);
   8637                     {
   8638                         noshowpoint(ios);
   8639                         {
   8640                             ios.imbue(lc);
   8641                             {
   8642                                 ios.width(0);
   8643                                 {
   8644                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8645                                     std::string ex(str, iter.base());
   8646                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
   8647                                     assert(ios.width() == 0);
   8648                                 }
   8649                                 ios.width(25);
   8650                                 left(ios);
   8651                                 {
   8652                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8653                                     std::string ex(str, iter.base());
   8654                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
   8655                                     assert(ios.width() == 0);
   8656                                 }
   8657                                 ios.width(25);
   8658                                 right(ios);
   8659                                 {
   8660                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8661                                     std::string ex(str, iter.base());
   8662                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
   8663                                     assert(ios.width() == 0);
   8664                                 }
   8665                                 ios.width(25);
   8666                                 internal(ios);
   8667                                 {
   8668                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8669                                     std::string ex(str, iter.base());
   8670                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
   8671                                     assert(ios.width() == 0);
   8672                                 }
   8673                             }
   8674                             ios.imbue(lg);
   8675                             {
   8676                                 ios.width(0);
   8677                                 {
   8678                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8679                                     std::string ex(str, iter.base());
   8680                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
   8681                                     assert(ios.width() == 0);
   8682                                 }
   8683                                 ios.width(25);
   8684                                 left(ios);
   8685                                 {
   8686                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8687                                     std::string ex(str, iter.base());
   8688                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
   8689                                     assert(ios.width() == 0);
   8690                                 }
   8691                                 ios.width(25);
   8692                                 right(ios);
   8693                                 {
   8694                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8695                                     std::string ex(str, iter.base());
   8696                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
   8697                                     assert(ios.width() == 0);
   8698                                 }
   8699                                 ios.width(25);
   8700                                 internal(ios);
   8701                                 {
   8702                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8703                                     std::string ex(str, iter.base());
   8704                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
   8705                                     assert(ios.width() == 0);
   8706                                 }
   8707                             }
   8708                         }
   8709                         showpoint(ios);
   8710                         {
   8711                             ios.imbue(lc);
   8712                             {
   8713                                 ios.width(0);
   8714                                 {
   8715                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8716                                     std::string ex(str, iter.base());
   8717                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
   8718                                     assert(ios.width() == 0);
   8719                                 }
   8720                                 ios.width(25);
   8721                                 left(ios);
   8722                                 {
   8723                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8724                                     std::string ex(str, iter.base());
   8725                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
   8726                                     assert(ios.width() == 0);
   8727                                 }
   8728                                 ios.width(25);
   8729                                 right(ios);
   8730                                 {
   8731                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8732                                     std::string ex(str, iter.base());
   8733                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
   8734                                     assert(ios.width() == 0);
   8735                                 }
   8736                                 ios.width(25);
   8737                                 internal(ios);
   8738                                 {
   8739                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8740                                     std::string ex(str, iter.base());
   8741                                     assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
   8742                                     assert(ios.width() == 0);
   8743                                 }
   8744                             }
   8745                             ios.imbue(lg);
   8746                             {
   8747                                 ios.width(0);
   8748                                 {
   8749                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8750                                     std::string ex(str, iter.base());
   8751                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
   8752                                     assert(ios.width() == 0);
   8753                                 }
   8754                                 ios.width(25);
   8755                                 left(ios);
   8756                                 {
   8757                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8758                                     std::string ex(str, iter.base());
   8759                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
   8760                                     assert(ios.width() == 0);
   8761                                 }
   8762                                 ios.width(25);
   8763                                 right(ios);
   8764                                 {
   8765                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8766                                     std::string ex(str, iter.base());
   8767                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
   8768                                     assert(ios.width() == 0);
   8769                                 }
   8770                                 ios.width(25);
   8771                                 internal(ios);
   8772                                 {
   8773                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8774                                     std::string ex(str, iter.base());
   8775                                     assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
   8776                                     assert(ios.width() == 0);
   8777                                 }
   8778                             }
   8779                         }
   8780                     }
   8781                     showpos(ios);
   8782                     {
   8783                         noshowpoint(ios);
   8784                         {
   8785                             ios.imbue(lc);
   8786                             {
   8787                                 ios.width(0);
   8788                                 {
   8789                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8790                                     std::string ex(str, iter.base());
   8791                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
   8792                                     assert(ios.width() == 0);
   8793                                 }
   8794                                 ios.width(25);
   8795                                 left(ios);
   8796                                 {
   8797                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8798                                     std::string ex(str, iter.base());
   8799                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
   8800                                     assert(ios.width() == 0);
   8801                                 }
   8802                                 ios.width(25);
   8803                                 right(ios);
   8804                                 {
   8805                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8806                                     std::string ex(str, iter.base());
   8807                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
   8808                                     assert(ios.width() == 0);
   8809                                 }
   8810                                 ios.width(25);
   8811                                 internal(ios);
   8812                                 {
   8813                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8814                                     std::string ex(str, iter.base());
   8815                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
   8816                                     assert(ios.width() == 0);
   8817                                 }
   8818                             }
   8819                             ios.imbue(lg);
   8820                             {
   8821                                 ios.width(0);
   8822                                 {
   8823                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8824                                     std::string ex(str, iter.base());
   8825                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
   8826                                     assert(ios.width() == 0);
   8827                                 }
   8828                                 ios.width(25);
   8829                                 left(ios);
   8830                                 {
   8831                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8832                                     std::string ex(str, iter.base());
   8833                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
   8834                                     assert(ios.width() == 0);
   8835                                 }
   8836                                 ios.width(25);
   8837                                 right(ios);
   8838                                 {
   8839                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8840                                     std::string ex(str, iter.base());
   8841                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
   8842                                     assert(ios.width() == 0);
   8843                                 }
   8844                                 ios.width(25);
   8845                                 internal(ios);
   8846                                 {
   8847                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8848                                     std::string ex(str, iter.base());
   8849                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
   8850                                     assert(ios.width() == 0);
   8851                                 }
   8852                             }
   8853                         }
   8854                         showpoint(ios);
   8855                         {
   8856                             ios.imbue(lc);
   8857                             {
   8858                                 ios.width(0);
   8859                                 {
   8860                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8861                                     std::string ex(str, iter.base());
   8862                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
   8863                                     assert(ios.width() == 0);
   8864                                 }
   8865                                 ios.width(25);
   8866                                 left(ios);
   8867                                 {
   8868                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8869                                     std::string ex(str, iter.base());
   8870                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
   8871                                     assert(ios.width() == 0);
   8872                                 }
   8873                                 ios.width(25);
   8874                                 right(ios);
   8875                                 {
   8876                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8877                                     std::string ex(str, iter.base());
   8878                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
   8879                                     assert(ios.width() == 0);
   8880                                 }
   8881                                 ios.width(25);
   8882                                 internal(ios);
   8883                                 {
   8884                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8885                                     std::string ex(str, iter.base());
   8886                                     assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
   8887                                     assert(ios.width() == 0);
   8888                                 }
   8889                             }
   8890                             ios.imbue(lg);
   8891                             {
   8892                                 ios.width(0);
   8893                                 {
   8894                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8895                                     std::string ex(str, iter.base());
   8896                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
   8897                                     assert(ios.width() == 0);
   8898                                 }
   8899                                 ios.width(25);
   8900                                 left(ios);
   8901                                 {
   8902                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8903                                     std::string ex(str, iter.base());
   8904                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
   8905                                     assert(ios.width() == 0);
   8906                                 }
   8907                                 ios.width(25);
   8908                                 right(ios);
   8909                                 {
   8910                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8911                                     std::string ex(str, iter.base());
   8912                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
   8913                                     assert(ios.width() == 0);
   8914                                 }
   8915                                 ios.width(25);
   8916                                 internal(ios);
   8917                                 {
   8918                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8919                                     std::string ex(str, iter.base());
   8920                                     assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
   8921                                     assert(ios.width() == 0);
   8922                                 }
   8923                             }
   8924                         }
   8925                     }
   8926                 }
   8927             }
   8928         }
   8929     }
   8930 }
   8931 
   8932 void test4()
   8933 {
   8934     char str[200];
   8935     output_iterator<char*> iter;
   8936     std::locale lc = std::locale::classic();
   8937     std::locale lg(lc, new my_numpunct);
   8938     const my_facet f(1);
   8939     {
   8940         double v = 1234567890.125;
   8941         std::ios ios(0);
   8942         fixed(ios);
   8943         // %f
   8944         {
   8945             ios.precision(0);
   8946             {
   8947                 nouppercase(ios);
   8948                 {
   8949                     noshowpos(ios);
   8950                     {
   8951                         noshowpoint(ios);
   8952                         {
   8953                             ios.imbue(lc);
   8954                             {
   8955                                 ios.width(0);
   8956                                 {
   8957                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8958                                     std::string ex(str, iter.base());
   8959                                     assert(ex == "1234567890");
   8960                                     assert(ios.width() == 0);
   8961                                 }
   8962                                 ios.width(25);
   8963                                 left(ios);
   8964                                 {
   8965                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8966                                     std::string ex(str, iter.base());
   8967                                     assert(ex == "1234567890***************");
   8968                                     assert(ios.width() == 0);
   8969                                 }
   8970                                 ios.width(25);
   8971                                 right(ios);
   8972                                 {
   8973                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8974                                     std::string ex(str, iter.base());
   8975                                     assert(ex == "***************1234567890");
   8976                                     assert(ios.width() == 0);
   8977                                 }
   8978                                 ios.width(25);
   8979                                 internal(ios);
   8980                                 {
   8981                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8982                                     std::string ex(str, iter.base());
   8983                                     assert(ex == "***************1234567890");
   8984                                     assert(ios.width() == 0);
   8985                                 }
   8986                             }
   8987                             ios.imbue(lg);
   8988                             {
   8989                                 ios.width(0);
   8990                                 {
   8991                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   8992                                     std::string ex(str, iter.base());
   8993                                     assert(ex == "1_234_567_89_0");
   8994                                     assert(ios.width() == 0);
   8995                                 }
   8996                                 ios.width(25);
   8997                                 left(ios);
   8998                                 {
   8999                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9000                                     std::string ex(str, iter.base());
   9001                                     assert(ex == "1_234_567_89_0***********");
   9002                                     assert(ios.width() == 0);
   9003                                 }
   9004                                 ios.width(25);
   9005                                 right(ios);
   9006                                 {
   9007                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9008                                     std::string ex(str, iter.base());
   9009                                     assert(ex == "***********1_234_567_89_0");
   9010                                     assert(ios.width() == 0);
   9011                                 }
   9012                                 ios.width(25);
   9013                                 internal(ios);
   9014                                 {
   9015                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9016                                     std::string ex(str, iter.base());
   9017                                     assert(ex == "***********1_234_567_89_0");
   9018                                     assert(ios.width() == 0);
   9019                                 }
   9020                             }
   9021                         }
   9022                         showpoint(ios);
   9023                         {
   9024                             ios.imbue(lc);
   9025                             {
   9026                                 ios.width(0);
   9027                                 {
   9028                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9029                                     std::string ex(str, iter.base());
   9030                                     assert(ex == "1234567890.");
   9031                                     assert(ios.width() == 0);
   9032                                 }
   9033                                 ios.width(25);
   9034                                 left(ios);
   9035                                 {
   9036                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9037                                     std::string ex(str, iter.base());
   9038                                     assert(ex == "1234567890.**************");
   9039                                     assert(ios.width() == 0);
   9040                                 }
   9041                                 ios.width(25);
   9042                                 right(ios);
   9043                                 {
   9044                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9045                                     std::string ex(str, iter.base());
   9046                                     assert(ex == "**************1234567890.");
   9047                                     assert(ios.width() == 0);
   9048                                 }
   9049                                 ios.width(25);
   9050                                 internal(ios);
   9051                                 {
   9052                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9053                                     std::string ex(str, iter.base());
   9054                                     assert(ex == "**************1234567890.");
   9055                                     assert(ios.width() == 0);
   9056                                 }
   9057                             }
   9058                             ios.imbue(lg);
   9059                             {
   9060                                 ios.width(0);
   9061                                 {
   9062                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9063                                     std::string ex(str, iter.base());
   9064                                     assert(ex == "1_234_567_89_0;");
   9065                                     assert(ios.width() == 0);
   9066                                 }
   9067                                 ios.width(25);
   9068                                 left(ios);
   9069                                 {
   9070                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9071                                     std::string ex(str, iter.base());
   9072                                     assert(ex == "1_234_567_89_0;**********");
   9073                                     assert(ios.width() == 0);
   9074                                 }
   9075                                 ios.width(25);
   9076                                 right(ios);
   9077                                 {
   9078                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9079                                     std::string ex(str, iter.base());
   9080                                     assert(ex == "**********1_234_567_89_0;");
   9081                                     assert(ios.width() == 0);
   9082                                 }
   9083                                 ios.width(25);
   9084                                 internal(ios);
   9085                                 {
   9086                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9087                                     std::string ex(str, iter.base());
   9088                                     assert(ex == "**********1_234_567_89_0;");
   9089                                     assert(ios.width() == 0);
   9090                                 }
   9091                             }
   9092                         }
   9093                     }
   9094                     showpos(ios);
   9095                     {
   9096                         noshowpoint(ios);
   9097                         {
   9098                             ios.imbue(lc);
   9099                             {
   9100                                 ios.width(0);
   9101                                 {
   9102                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9103                                     std::string ex(str, iter.base());
   9104                                     assert(ex == "+1234567890");
   9105                                     assert(ios.width() == 0);
   9106                                 }
   9107                                 ios.width(25);
   9108                                 left(ios);
   9109                                 {
   9110                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9111                                     std::string ex(str, iter.base());
   9112                                     assert(ex == "+1234567890**************");
   9113                                     assert(ios.width() == 0);
   9114                                 }
   9115                                 ios.width(25);
   9116                                 right(ios);
   9117                                 {
   9118                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9119                                     std::string ex(str, iter.base());
   9120                                     assert(ex == "**************+1234567890");
   9121                                     assert(ios.width() == 0);
   9122                                 }
   9123                                 ios.width(25);
   9124                                 internal(ios);
   9125                                 {
   9126                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9127                                     std::string ex(str, iter.base());
   9128                                     assert(ex == "+**************1234567890");
   9129                                     assert(ios.width() == 0);
   9130                                 }
   9131                             }
   9132                             ios.imbue(lg);
   9133                             {
   9134                                 ios.width(0);
   9135                                 {
   9136                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9137                                     std::string ex(str, iter.base());
   9138                                     assert(ex == "+1_234_567_89_0");
   9139                                     assert(ios.width() == 0);
   9140                                 }
   9141                                 ios.width(25);
   9142                                 left(ios);
   9143                                 {
   9144                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9145                                     std::string ex(str, iter.base());
   9146                                     assert(ex == "+1_234_567_89_0**********");
   9147                                     assert(ios.width() == 0);
   9148                                 }
   9149                                 ios.width(25);
   9150                                 right(ios);
   9151                                 {
   9152                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9153                                     std::string ex(str, iter.base());
   9154                                     assert(ex == "**********+1_234_567_89_0");
   9155                                     assert(ios.width() == 0);
   9156                                 }
   9157                                 ios.width(25);
   9158                                 internal(ios);
   9159                                 {
   9160                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9161                                     std::string ex(str, iter.base());
   9162                                     assert(ex == "+**********1_234_567_89_0");
   9163                                     assert(ios.width() == 0);
   9164                                 }
   9165                             }
   9166                         }
   9167                         showpoint(ios);
   9168                         {
   9169                             ios.imbue(lc);
   9170                             {
   9171                                 ios.width(0);
   9172                                 {
   9173                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9174                                     std::string ex(str, iter.base());
   9175                                     assert(ex == "+1234567890.");
   9176                                     assert(ios.width() == 0);
   9177                                 }
   9178                                 ios.width(25);
   9179                                 left(ios);
   9180                                 {
   9181                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9182                                     std::string ex(str, iter.base());
   9183                                     assert(ex == "+1234567890.*************");
   9184                                     assert(ios.width() == 0);
   9185                                 }
   9186                                 ios.width(25);
   9187                                 right(ios);
   9188                                 {
   9189                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9190                                     std::string ex(str, iter.base());
   9191                                     assert(ex == "*************+1234567890.");
   9192                                     assert(ios.width() == 0);
   9193                                 }
   9194                                 ios.width(25);
   9195                                 internal(ios);
   9196                                 {
   9197                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9198                                     std::string ex(str, iter.base());
   9199                                     assert(ex == "+*************1234567890.");
   9200                                     assert(ios.width() == 0);
   9201                                 }
   9202                             }
   9203                             ios.imbue(lg);
   9204                             {
   9205                                 ios.width(0);
   9206                                 {
   9207                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9208                                     std::string ex(str, iter.base());
   9209                                     assert(ex == "+1_234_567_89_0;");
   9210                                     assert(ios.width() == 0);
   9211                                 }
   9212                                 ios.width(25);
   9213                                 left(ios);
   9214                                 {
   9215                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9216                                     std::string ex(str, iter.base());
   9217                                     assert(ex == "+1_234_567_89_0;*********");
   9218                                     assert(ios.width() == 0);
   9219                                 }
   9220                                 ios.width(25);
   9221                                 right(ios);
   9222                                 {
   9223                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9224                                     std::string ex(str, iter.base());
   9225                                     assert(ex == "*********+1_234_567_89_0;");
   9226                                     assert(ios.width() == 0);
   9227                                 }
   9228                                 ios.width(25);
   9229                                 internal(ios);
   9230                                 {
   9231                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9232                                     std::string ex(str, iter.base());
   9233                                     assert(ex == "+*********1_234_567_89_0;");
   9234                                     assert(ios.width() == 0);
   9235                                 }
   9236                             }
   9237                         }
   9238                     }
   9239                 }
   9240                 uppercase(ios);
   9241                 {
   9242                     noshowpos(ios);
   9243                     {
   9244                         noshowpoint(ios);
   9245                         {
   9246                             ios.imbue(lc);
   9247                             {
   9248                                 ios.width(0);
   9249                                 {
   9250                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9251                                     std::string ex(str, iter.base());
   9252                                     assert(ex == "1234567890");
   9253                                     assert(ios.width() == 0);
   9254                                 }
   9255                                 ios.width(25);
   9256                                 left(ios);
   9257                                 {
   9258                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9259                                     std::string ex(str, iter.base());
   9260                                     assert(ex == "1234567890***************");
   9261                                     assert(ios.width() == 0);
   9262                                 }
   9263                                 ios.width(25);
   9264                                 right(ios);
   9265                                 {
   9266                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9267                                     std::string ex(str, iter.base());
   9268                                     assert(ex == "***************1234567890");
   9269                                     assert(ios.width() == 0);
   9270                                 }
   9271                                 ios.width(25);
   9272                                 internal(ios);
   9273                                 {
   9274                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9275                                     std::string ex(str, iter.base());
   9276                                     assert(ex == "***************1234567890");
   9277                                     assert(ios.width() == 0);
   9278                                 }
   9279                             }
   9280                             ios.imbue(lg);
   9281                             {
   9282                                 ios.width(0);
   9283                                 {
   9284                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9285                                     std::string ex(str, iter.base());
   9286                                     assert(ex == "1_234_567_89_0");
   9287                                     assert(ios.width() == 0);
   9288                                 }
   9289                                 ios.width(25);
   9290                                 left(ios);
   9291                                 {
   9292                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9293                                     std::string ex(str, iter.base());
   9294                                     assert(ex == "1_234_567_89_0***********");
   9295                                     assert(ios.width() == 0);
   9296                                 }
   9297                                 ios.width(25);
   9298                                 right(ios);
   9299                                 {
   9300                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9301                                     std::string ex(str, iter.base());
   9302                                     assert(ex == "***********1_234_567_89_0");
   9303                                     assert(ios.width() == 0);
   9304                                 }
   9305                                 ios.width(25);
   9306                                 internal(ios);
   9307                                 {
   9308                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9309                                     std::string ex(str, iter.base());
   9310                                     assert(ex == "***********1_234_567_89_0");
   9311                                     assert(ios.width() == 0);
   9312                                 }
   9313                             }
   9314                         }
   9315                         showpoint(ios);
   9316                         {
   9317                             ios.imbue(lc);
   9318                             {
   9319                                 ios.width(0);
   9320                                 {
   9321                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9322                                     std::string ex(str, iter.base());
   9323                                     assert(ex == "1234567890.");
   9324                                     assert(ios.width() == 0);
   9325                                 }
   9326                                 ios.width(25);
   9327                                 left(ios);
   9328                                 {
   9329                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9330                                     std::string ex(str, iter.base());
   9331                                     assert(ex == "1234567890.**************");
   9332                                     assert(ios.width() == 0);
   9333                                 }
   9334                                 ios.width(25);
   9335                                 right(ios);
   9336                                 {
   9337                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9338                                     std::string ex(str, iter.base());
   9339                                     assert(ex == "**************1234567890.");
   9340                                     assert(ios.width() == 0);
   9341                                 }
   9342                                 ios.width(25);
   9343                                 internal(ios);
   9344                                 {
   9345                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9346                                     std::string ex(str, iter.base());
   9347                                     assert(ex == "**************1234567890.");
   9348                                     assert(ios.width() == 0);
   9349                                 }
   9350                             }
   9351                             ios.imbue(lg);
   9352                             {
   9353                                 ios.width(0);
   9354                                 {
   9355                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9356                                     std::string ex(str, iter.base());
   9357                                     assert(ex == "1_234_567_89_0;");
   9358                                     assert(ios.width() == 0);
   9359                                 }
   9360                                 ios.width(25);
   9361                                 left(ios);
   9362                                 {
   9363                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9364                                     std::string ex(str, iter.base());
   9365                                     assert(ex == "1_234_567_89_0;**********");
   9366                                     assert(ios.width() == 0);
   9367                                 }
   9368                                 ios.width(25);
   9369                                 right(ios);
   9370                                 {
   9371                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9372                                     std::string ex(str, iter.base());
   9373                                     assert(ex == "**********1_234_567_89_0;");
   9374                                     assert(ios.width() == 0);
   9375                                 }
   9376                                 ios.width(25);
   9377                                 internal(ios);
   9378                                 {
   9379                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9380                                     std::string ex(str, iter.base());
   9381                                     assert(ex == "**********1_234_567_89_0;");
   9382                                     assert(ios.width() == 0);
   9383                                 }
   9384                             }
   9385                         }
   9386                     }
   9387                     showpos(ios);
   9388                     {
   9389                         noshowpoint(ios);
   9390                         {
   9391                             ios.imbue(lc);
   9392                             {
   9393                                 ios.width(0);
   9394                                 {
   9395                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9396                                     std::string ex(str, iter.base());
   9397                                     assert(ex == "+1234567890");
   9398                                     assert(ios.width() == 0);
   9399                                 }
   9400                                 ios.width(25);
   9401                                 left(ios);
   9402                                 {
   9403                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9404                                     std::string ex(str, iter.base());
   9405                                     assert(ex == "+1234567890**************");
   9406                                     assert(ios.width() == 0);
   9407                                 }
   9408                                 ios.width(25);
   9409                                 right(ios);
   9410                                 {
   9411                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9412                                     std::string ex(str, iter.base());
   9413                                     assert(ex == "**************+1234567890");
   9414                                     assert(ios.width() == 0);
   9415                                 }
   9416                                 ios.width(25);
   9417                                 internal(ios);
   9418                                 {
   9419                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9420                                     std::string ex(str, iter.base());
   9421                                     assert(ex == "+**************1234567890");
   9422                                     assert(ios.width() == 0);
   9423                                 }
   9424                             }
   9425                             ios.imbue(lg);
   9426                             {
   9427                                 ios.width(0);
   9428                                 {
   9429                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9430                                     std::string ex(str, iter.base());
   9431                                     assert(ex == "+1_234_567_89_0");
   9432                                     assert(ios.width() == 0);
   9433                                 }
   9434                                 ios.width(25);
   9435                                 left(ios);
   9436                                 {
   9437                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9438                                     std::string ex(str, iter.base());
   9439                                     assert(ex == "+1_234_567_89_0**********");
   9440                                     assert(ios.width() == 0);
   9441                                 }
   9442                                 ios.width(25);
   9443                                 right(ios);
   9444                                 {
   9445                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9446                                     std::string ex(str, iter.base());
   9447                                     assert(ex == "**********+1_234_567_89_0");
   9448                                     assert(ios.width() == 0);
   9449                                 }
   9450                                 ios.width(25);
   9451                                 internal(ios);
   9452                                 {
   9453                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9454                                     std::string ex(str, iter.base());
   9455                                     assert(ex == "+**********1_234_567_89_0");
   9456                                     assert(ios.width() == 0);
   9457                                 }
   9458                             }
   9459                         }
   9460                         showpoint(ios);
   9461                         {
   9462                             ios.imbue(lc);
   9463                             {
   9464                                 ios.width(0);
   9465                                 {
   9466                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9467                                     std::string ex(str, iter.base());
   9468                                     assert(ex == "+1234567890.");
   9469                                     assert(ios.width() == 0);
   9470                                 }
   9471                                 ios.width(25);
   9472                                 left(ios);
   9473                                 {
   9474                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9475                                     std::string ex(str, iter.base());
   9476                                     assert(ex == "+1234567890.*************");
   9477                                     assert(ios.width() == 0);
   9478                                 }
   9479                                 ios.width(25);
   9480                                 right(ios);
   9481                                 {
   9482                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9483                                     std::string ex(str, iter.base());
   9484                                     assert(ex == "*************+1234567890.");
   9485                                     assert(ios.width() == 0);
   9486                                 }
   9487                                 ios.width(25);
   9488                                 internal(ios);
   9489                                 {
   9490                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9491                                     std::string ex(str, iter.base());
   9492                                     assert(ex == "+*************1234567890.");
   9493                                     assert(ios.width() == 0);
   9494                                 }
   9495                             }
   9496                             ios.imbue(lg);
   9497                             {
   9498                                 ios.width(0);
   9499                                 {
   9500                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9501                                     std::string ex(str, iter.base());
   9502                                     assert(ex == "+1_234_567_89_0;");
   9503                                     assert(ios.width() == 0);
   9504                                 }
   9505                                 ios.width(25);
   9506                                 left(ios);
   9507                                 {
   9508                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9509                                     std::string ex(str, iter.base());
   9510                                     assert(ex == "+1_234_567_89_0;*********");
   9511                                     assert(ios.width() == 0);
   9512                                 }
   9513                                 ios.width(25);
   9514                                 right(ios);
   9515                                 {
   9516                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9517                                     std::string ex(str, iter.base());
   9518                                     assert(ex == "*********+1_234_567_89_0;");
   9519                                     assert(ios.width() == 0);
   9520                                 }
   9521                                 ios.width(25);
   9522                                 internal(ios);
   9523                                 {
   9524                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9525                                     std::string ex(str, iter.base());
   9526                                     assert(ex == "+*********1_234_567_89_0;");
   9527                                     assert(ios.width() == 0);
   9528                                 }
   9529                             }
   9530                         }
   9531                     }
   9532                 }
   9533             }
   9534             ios.precision(1);
   9535             {
   9536                 nouppercase(ios);
   9537                 {
   9538                     noshowpos(ios);
   9539                     {
   9540                         noshowpoint(ios);
   9541                         {
   9542                             ios.imbue(lc);
   9543                             {
   9544                                 ios.width(0);
   9545                                 {
   9546                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9547                                     std::string ex(str, iter.base());
   9548                                     assert(ex == "1234567890.1");
   9549                                     assert(ios.width() == 0);
   9550                                 }
   9551                                 ios.width(25);
   9552                                 left(ios);
   9553                                 {
   9554                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9555                                     std::string ex(str, iter.base());
   9556                                     assert(ex == "1234567890.1*************");
   9557                                     assert(ios.width() == 0);
   9558                                 }
   9559                                 ios.width(25);
   9560                                 right(ios);
   9561                                 {
   9562                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9563                                     std::string ex(str, iter.base());
   9564                                     assert(ex == "*************1234567890.1");
   9565                                     assert(ios.width() == 0);
   9566                                 }
   9567                                 ios.width(25);
   9568                                 internal(ios);
   9569                                 {
   9570                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9571                                     std::string ex(str, iter.base());
   9572                                     assert(ex == "*************1234567890.1");
   9573                                     assert(ios.width() == 0);
   9574                                 }
   9575                             }
   9576                             ios.imbue(lg);
   9577                             {
   9578                                 ios.width(0);
   9579                                 {
   9580                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9581                                     std::string ex(str, iter.base());
   9582                                     assert(ex == "1_234_567_89_0;1");
   9583                                     assert(ios.width() == 0);
   9584                                 }
   9585                                 ios.width(25);
   9586                                 left(ios);
   9587                                 {
   9588                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9589                                     std::string ex(str, iter.base());
   9590                                     assert(ex == "1_234_567_89_0;1*********");
   9591                                     assert(ios.width() == 0);
   9592                                 }
   9593                                 ios.width(25);
   9594                                 right(ios);
   9595                                 {
   9596                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9597                                     std::string ex(str, iter.base());
   9598                                     assert(ex == "*********1_234_567_89_0;1");
   9599                                     assert(ios.width() == 0);
   9600                                 }
   9601                                 ios.width(25);
   9602                                 internal(ios);
   9603                                 {
   9604                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9605                                     std::string ex(str, iter.base());
   9606                                     assert(ex == "*********1_234_567_89_0;1");
   9607                                     assert(ios.width() == 0);
   9608                                 }
   9609                             }
   9610                         }
   9611                         showpoint(ios);
   9612                         {
   9613                             ios.imbue(lc);
   9614                             {
   9615                                 ios.width(0);
   9616                                 {
   9617                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9618                                     std::string ex(str, iter.base());
   9619                                     assert(ex == "1234567890.1");
   9620                                     assert(ios.width() == 0);
   9621                                 }
   9622                                 ios.width(25);
   9623                                 left(ios);
   9624                                 {
   9625                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9626                                     std::string ex(str, iter.base());
   9627                                     assert(ex == "1234567890.1*************");
   9628                                     assert(ios.width() == 0);
   9629                                 }
   9630                                 ios.width(25);
   9631                                 right(ios);
   9632                                 {
   9633                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9634                                     std::string ex(str, iter.base());
   9635                                     assert(ex == "*************1234567890.1");
   9636                                     assert(ios.width() == 0);
   9637                                 }
   9638                                 ios.width(25);
   9639                                 internal(ios);
   9640                                 {
   9641                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9642                                     std::string ex(str, iter.base());
   9643                                     assert(ex == "*************1234567890.1");
   9644                                     assert(ios.width() == 0);
   9645                                 }
   9646                             }
   9647                             ios.imbue(lg);
   9648                             {
   9649                                 ios.width(0);
   9650                                 {
   9651                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9652                                     std::string ex(str, iter.base());
   9653                                     assert(ex == "1_234_567_89_0;1");
   9654                                     assert(ios.width() == 0);
   9655                                 }
   9656                                 ios.width(25);
   9657                                 left(ios);
   9658                                 {
   9659                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9660                                     std::string ex(str, iter.base());
   9661                                     assert(ex == "1_234_567_89_0;1*********");
   9662                                     assert(ios.width() == 0);
   9663                                 }
   9664                                 ios.width(25);
   9665                                 right(ios);
   9666                                 {
   9667                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9668                                     std::string ex(str, iter.base());
   9669                                     assert(ex == "*********1_234_567_89_0;1");
   9670                                     assert(ios.width() == 0);
   9671                                 }
   9672                                 ios.width(25);
   9673                                 internal(ios);
   9674                                 {
   9675                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9676                                     std::string ex(str, iter.base());
   9677                                     assert(ex == "*********1_234_567_89_0;1");
   9678                                     assert(ios.width() == 0);
   9679                                 }
   9680                             }
   9681                         }
   9682                     }
   9683                     showpos(ios);
   9684                     {
   9685                         noshowpoint(ios);
   9686                         {
   9687                             ios.imbue(lc);
   9688                             {
   9689                                 ios.width(0);
   9690                                 {
   9691                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9692                                     std::string ex(str, iter.base());
   9693                                     assert(ex == "+1234567890.1");
   9694                                     assert(ios.width() == 0);
   9695                                 }
   9696                                 ios.width(25);
   9697                                 left(ios);
   9698                                 {
   9699                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9700                                     std::string ex(str, iter.base());
   9701                                     assert(ex == "+1234567890.1************");
   9702                                     assert(ios.width() == 0);
   9703                                 }
   9704                                 ios.width(25);
   9705                                 right(ios);
   9706                                 {
   9707                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9708                                     std::string ex(str, iter.base());
   9709                                     assert(ex == "************+1234567890.1");
   9710                                     assert(ios.width() == 0);
   9711                                 }
   9712                                 ios.width(25);
   9713                                 internal(ios);
   9714                                 {
   9715                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9716                                     std::string ex(str, iter.base());
   9717                                     assert(ex == "+************1234567890.1");
   9718                                     assert(ios.width() == 0);
   9719                                 }
   9720                             }
   9721                             ios.imbue(lg);
   9722                             {
   9723                                 ios.width(0);
   9724                                 {
   9725                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9726                                     std::string ex(str, iter.base());
   9727                                     assert(ex == "+1_234_567_89_0;1");
   9728                                     assert(ios.width() == 0);
   9729                                 }
   9730                                 ios.width(25);
   9731                                 left(ios);
   9732                                 {
   9733                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9734                                     std::string ex(str, iter.base());
   9735                                     assert(ex == "+1_234_567_89_0;1********");
   9736                                     assert(ios.width() == 0);
   9737                                 }
   9738                                 ios.width(25);
   9739                                 right(ios);
   9740                                 {
   9741                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9742                                     std::string ex(str, iter.base());
   9743                                     assert(ex == "********+1_234_567_89_0;1");
   9744                                     assert(ios.width() == 0);
   9745                                 }
   9746                                 ios.width(25);
   9747                                 internal(ios);
   9748                                 {
   9749                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9750                                     std::string ex(str, iter.base());
   9751                                     assert(ex == "+********1_234_567_89_0;1");
   9752                                     assert(ios.width() == 0);
   9753                                 }
   9754                             }
   9755                         }
   9756                         showpoint(ios);
   9757                         {
   9758                             ios.imbue(lc);
   9759                             {
   9760                                 ios.width(0);
   9761                                 {
   9762                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9763                                     std::string ex(str, iter.base());
   9764                                     assert(ex == "+1234567890.1");
   9765                                     assert(ios.width() == 0);
   9766                                 }
   9767                                 ios.width(25);
   9768                                 left(ios);
   9769                                 {
   9770                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9771                                     std::string ex(str, iter.base());
   9772                                     assert(ex == "+1234567890.1************");
   9773                                     assert(ios.width() == 0);
   9774                                 }
   9775                                 ios.width(25);
   9776                                 right(ios);
   9777                                 {
   9778                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9779                                     std::string ex(str, iter.base());
   9780                                     assert(ex == "************+1234567890.1");
   9781                                     assert(ios.width() == 0);
   9782                                 }
   9783                                 ios.width(25);
   9784                                 internal(ios);
   9785                                 {
   9786                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9787                                     std::string ex(str, iter.base());
   9788                                     assert(ex == "+************1234567890.1");
   9789                                     assert(ios.width() == 0);
   9790                                 }
   9791                             }
   9792                             ios.imbue(lg);
   9793                             {
   9794                                 ios.width(0);
   9795                                 {
   9796                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9797                                     std::string ex(str, iter.base());
   9798                                     assert(ex == "+1_234_567_89_0;1");
   9799                                     assert(ios.width() == 0);
   9800                                 }
   9801                                 ios.width(25);
   9802                                 left(ios);
   9803                                 {
   9804                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9805                                     std::string ex(str, iter.base());
   9806                                     assert(ex == "+1_234_567_89_0;1********");
   9807                                     assert(ios.width() == 0);
   9808                                 }
   9809                                 ios.width(25);
   9810                                 right(ios);
   9811                                 {
   9812                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9813                                     std::string ex(str, iter.base());
   9814                                     assert(ex == "********+1_234_567_89_0;1");
   9815                                     assert(ios.width() == 0);
   9816                                 }
   9817                                 ios.width(25);
   9818                                 internal(ios);
   9819                                 {
   9820                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9821                                     std::string ex(str, iter.base());
   9822                                     assert(ex == "+********1_234_567_89_0;1");
   9823                                     assert(ios.width() == 0);
   9824                                 }
   9825                             }
   9826                         }
   9827                     }
   9828                 }
   9829                 uppercase(ios);
   9830                 {
   9831                     noshowpos(ios);
   9832                     {
   9833                         noshowpoint(ios);
   9834                         {
   9835                             ios.imbue(lc);
   9836                             {
   9837                                 ios.width(0);
   9838                                 {
   9839                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9840                                     std::string ex(str, iter.base());
   9841                                     assert(ex == "1234567890.1");
   9842                                     assert(ios.width() == 0);
   9843                                 }
   9844                                 ios.width(25);
   9845                                 left(ios);
   9846                                 {
   9847                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9848                                     std::string ex(str, iter.base());
   9849                                     assert(ex == "1234567890.1*************");
   9850                                     assert(ios.width() == 0);
   9851                                 }
   9852                                 ios.width(25);
   9853                                 right(ios);
   9854                                 {
   9855                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9856                                     std::string ex(str, iter.base());
   9857                                     assert(ex == "*************1234567890.1");
   9858                                     assert(ios.width() == 0);
   9859                                 }
   9860                                 ios.width(25);
   9861                                 internal(ios);
   9862                                 {
   9863                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9864                                     std::string ex(str, iter.base());
   9865                                     assert(ex == "*************1234567890.1");
   9866                                     assert(ios.width() == 0);
   9867                                 }
   9868                             }
   9869                             ios.imbue(lg);
   9870                             {
   9871                                 ios.width(0);
   9872                                 {
   9873                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9874                                     std::string ex(str, iter.base());
   9875                                     assert(ex == "1_234_567_89_0;1");
   9876                                     assert(ios.width() == 0);
   9877                                 }
   9878                                 ios.width(25);
   9879                                 left(ios);
   9880                                 {
   9881                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9882                                     std::string ex(str, iter.base());
   9883                                     assert(ex == "1_234_567_89_0;1*********");
   9884                                     assert(ios.width() == 0);
   9885                                 }
   9886                                 ios.width(25);
   9887                                 right(ios);
   9888                                 {
   9889                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9890                                     std::string ex(str, iter.base());
   9891                                     assert(ex == "*********1_234_567_89_0;1");
   9892                                     assert(ios.width() == 0);
   9893                                 }
   9894                                 ios.width(25);
   9895                                 internal(ios);
   9896                                 {
   9897                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9898                                     std::string ex(str, iter.base());
   9899                                     assert(ex == "*********1_234_567_89_0;1");
   9900                                     assert(ios.width() == 0);
   9901                                 }
   9902                             }
   9903                         }
   9904                         showpoint(ios);
   9905                         {
   9906                             ios.imbue(lc);
   9907                             {
   9908                                 ios.width(0);
   9909                                 {
   9910                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9911                                     std::string ex(str, iter.base());
   9912                                     assert(ex == "1234567890.1");
   9913                                     assert(ios.width() == 0);
   9914                                 }
   9915                                 ios.width(25);
   9916                                 left(ios);
   9917                                 {
   9918                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9919                                     std::string ex(str, iter.base());
   9920                                     assert(ex == "1234567890.1*************");
   9921                                     assert(ios.width() == 0);
   9922                                 }
   9923                                 ios.width(25);
   9924                                 right(ios);
   9925                                 {
   9926                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9927                                     std::string ex(str, iter.base());
   9928                                     assert(ex == "*************1234567890.1");
   9929                                     assert(ios.width() == 0);
   9930                                 }
   9931                                 ios.width(25);
   9932                                 internal(ios);
   9933                                 {
   9934                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9935                                     std::string ex(str, iter.base());
   9936                                     assert(ex == "*************1234567890.1");
   9937                                     assert(ios.width() == 0);
   9938                                 }
   9939                             }
   9940                             ios.imbue(lg);
   9941                             {
   9942                                 ios.width(0);
   9943                                 {
   9944                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9945                                     std::string ex(str, iter.base());
   9946                                     assert(ex == "1_234_567_89_0;1");
   9947                                     assert(ios.width() == 0);
   9948                                 }
   9949                                 ios.width(25);
   9950                                 left(ios);
   9951                                 {
   9952                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9953                                     std::string ex(str, iter.base());
   9954                                     assert(ex == "1_234_567_89_0;1*********");
   9955                                     assert(ios.width() == 0);
   9956                                 }
   9957                                 ios.width(25);
   9958                                 right(ios);
   9959                                 {
   9960                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9961                                     std::string ex(str, iter.base());
   9962                                     assert(ex == "*********1_234_567_89_0;1");
   9963                                     assert(ios.width() == 0);
   9964                                 }
   9965                                 ios.width(25);
   9966                                 internal(ios);
   9967                                 {
   9968                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9969                                     std::string ex(str, iter.base());
   9970                                     assert(ex == "*********1_234_567_89_0;1");
   9971                                     assert(ios.width() == 0);
   9972                                 }
   9973                             }
   9974                         }
   9975                     }
   9976                     showpos(ios);
   9977                     {
   9978                         noshowpoint(ios);
   9979                         {
   9980                             ios.imbue(lc);
   9981                             {
   9982                                 ios.width(0);
   9983                                 {
   9984                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9985                                     std::string ex(str, iter.base());
   9986                                     assert(ex == "+1234567890.1");
   9987                                     assert(ios.width() == 0);
   9988                                 }
   9989                                 ios.width(25);
   9990                                 left(ios);
   9991                                 {
   9992                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   9993                                     std::string ex(str, iter.base());
   9994                                     assert(ex == "+1234567890.1************");
   9995                                     assert(ios.width() == 0);
   9996                                 }
   9997                                 ios.width(25);
   9998                                 right(ios);
   9999                                 {
   10000                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10001                                     std::string ex(str, iter.base());
   10002                                     assert(ex == "************+1234567890.1");
   10003                                     assert(ios.width() == 0);
   10004                                 }
   10005                                 ios.width(25);
   10006                                 internal(ios);
   10007                                 {
   10008                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10009                                     std::string ex(str, iter.base());
   10010                                     assert(ex == "+************1234567890.1");
   10011                                     assert(ios.width() == 0);
   10012                                 }
   10013                             }
   10014                             ios.imbue(lg);
   10015                             {
   10016                                 ios.width(0);
   10017                                 {
   10018                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10019                                     std::string ex(str, iter.base());
   10020                                     assert(ex == "+1_234_567_89_0;1");
   10021                                     assert(ios.width() == 0);
   10022                                 }
   10023                                 ios.width(25);
   10024                                 left(ios);
   10025                                 {
   10026                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10027                                     std::string ex(str, iter.base());
   10028                                     assert(ex == "+1_234_567_89_0;1********");
   10029                                     assert(ios.width() == 0);
   10030                                 }
   10031                                 ios.width(25);
   10032                                 right(ios);
   10033                                 {
   10034                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10035                                     std::string ex(str, iter.base());
   10036                                     assert(ex == "********+1_234_567_89_0;1");
   10037                                     assert(ios.width() == 0);
   10038                                 }
   10039                                 ios.width(25);
   10040                                 internal(ios);
   10041                                 {
   10042                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10043                                     std::string ex(str, iter.base());
   10044                                     assert(ex == "+********1_234_567_89_0;1");
   10045                                     assert(ios.width() == 0);
   10046                                 }
   10047                             }
   10048                         }
   10049                         showpoint(ios);
   10050                         {
   10051                             ios.imbue(lc);
   10052                             {
   10053                                 ios.width(0);
   10054                                 {
   10055                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10056                                     std::string ex(str, iter.base());
   10057                                     assert(ex == "+1234567890.1");
   10058                                     assert(ios.width() == 0);
   10059                                 }
   10060                                 ios.width(25);
   10061                                 left(ios);
   10062                                 {
   10063                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10064                                     std::string ex(str, iter.base());
   10065                                     assert(ex == "+1234567890.1************");
   10066                                     assert(ios.width() == 0);
   10067                                 }
   10068                                 ios.width(25);
   10069                                 right(ios);
   10070                                 {
   10071                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10072                                     std::string ex(str, iter.base());
   10073                                     assert(ex == "************+1234567890.1");
   10074                                     assert(ios.width() == 0);
   10075                                 }
   10076                                 ios.width(25);
   10077                                 internal(ios);
   10078                                 {
   10079                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10080                                     std::string ex(str, iter.base());
   10081                                     assert(ex == "+************1234567890.1");
   10082                                     assert(ios.width() == 0);
   10083                                 }
   10084                             }
   10085                             ios.imbue(lg);
   10086                             {
   10087                                 ios.width(0);
   10088                                 {
   10089                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10090                                     std::string ex(str, iter.base());
   10091                                     assert(ex == "+1_234_567_89_0;1");
   10092                                     assert(ios.width() == 0);
   10093                                 }
   10094                                 ios.width(25);
   10095                                 left(ios);
   10096                                 {
   10097                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10098                                     std::string ex(str, iter.base());
   10099                                     assert(ex == "+1_234_567_89_0;1********");
   10100                                     assert(ios.width() == 0);
   10101                                 }
   10102                                 ios.width(25);
   10103                                 right(ios);
   10104                                 {
   10105                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10106                                     std::string ex(str, iter.base());
   10107                                     assert(ex == "********+1_234_567_89_0;1");
   10108                                     assert(ios.width() == 0);
   10109                                 }
   10110                                 ios.width(25);
   10111                                 internal(ios);
   10112                                 {
   10113                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10114                                     std::string ex(str, iter.base());
   10115                                     assert(ex == "+********1_234_567_89_0;1");
   10116                                     assert(ios.width() == 0);
   10117                                 }
   10118                             }
   10119                         }
   10120                     }
   10121                 }
   10122             }
   10123             ios.precision(6);
   10124             {
   10125                 nouppercase(ios);
   10126                 {
   10127                     noshowpos(ios);
   10128                     {
   10129                         noshowpoint(ios);
   10130                         {
   10131                             ios.imbue(lc);
   10132                             {
   10133                                 ios.width(0);
   10134                                 {
   10135                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10136                                     std::string ex(str, iter.base());
   10137                                     assert(ex == "1234567890.125000");
   10138                                     assert(ios.width() == 0);
   10139                                 }
   10140                                 ios.width(25);
   10141                                 left(ios);
   10142                                 {
   10143                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10144                                     std::string ex(str, iter.base());
   10145                                     assert(ex == "1234567890.125000********");
   10146                                     assert(ios.width() == 0);
   10147                                 }
   10148                                 ios.width(25);
   10149                                 right(ios);
   10150                                 {
   10151                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10152                                     std::string ex(str, iter.base());
   10153                                     assert(ex == "********1234567890.125000");
   10154                                     assert(ios.width() == 0);
   10155                                 }
   10156                                 ios.width(25);
   10157                                 internal(ios);
   10158                                 {
   10159                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10160                                     std::string ex(str, iter.base());
   10161                                     assert(ex == "********1234567890.125000");
   10162                                     assert(ios.width() == 0);
   10163                                 }
   10164                             }
   10165                             ios.imbue(lg);
   10166                             {
   10167                                 ios.width(0);
   10168                                 {
   10169                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10170                                     std::string ex(str, iter.base());
   10171                                     assert(ex == "1_234_567_89_0;125000");
   10172                                     assert(ios.width() == 0);
   10173                                 }
   10174                                 ios.width(25);
   10175                                 left(ios);
   10176                                 {
   10177                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10178                                     std::string ex(str, iter.base());
   10179                                     assert(ex == "1_234_567_89_0;125000****");
   10180                                     assert(ios.width() == 0);
   10181                                 }
   10182                                 ios.width(25);
   10183                                 right(ios);
   10184                                 {
   10185                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10186                                     std::string ex(str, iter.base());
   10187                                     assert(ex == "****1_234_567_89_0;125000");
   10188                                     assert(ios.width() == 0);
   10189                                 }
   10190                                 ios.width(25);
   10191                                 internal(ios);
   10192                                 {
   10193                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10194                                     std::string ex(str, iter.base());
   10195                                     assert(ex == "****1_234_567_89_0;125000");
   10196                                     assert(ios.width() == 0);
   10197                                 }
   10198                             }
   10199                         }
   10200                         showpoint(ios);
   10201                         {
   10202                             ios.imbue(lc);
   10203                             {
   10204                                 ios.width(0);
   10205                                 {
   10206                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10207                                     std::string ex(str, iter.base());
   10208                                     assert(ex == "1234567890.125000");
   10209                                     assert(ios.width() == 0);
   10210                                 }
   10211                                 ios.width(25);
   10212                                 left(ios);
   10213                                 {
   10214                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10215                                     std::string ex(str, iter.base());
   10216                                     assert(ex == "1234567890.125000********");
   10217                                     assert(ios.width() == 0);
   10218                                 }
   10219                                 ios.width(25);
   10220                                 right(ios);
   10221                                 {
   10222                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10223                                     std::string ex(str, iter.base());
   10224                                     assert(ex == "********1234567890.125000");
   10225                                     assert(ios.width() == 0);
   10226                                 }
   10227                                 ios.width(25);
   10228                                 internal(ios);
   10229                                 {
   10230                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10231                                     std::string ex(str, iter.base());
   10232                                     assert(ex == "********1234567890.125000");
   10233                                     assert(ios.width() == 0);
   10234                                 }
   10235                             }
   10236                             ios.imbue(lg);
   10237                             {
   10238                                 ios.width(0);
   10239                                 {
   10240                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10241                                     std::string ex(str, iter.base());
   10242                                     assert(ex == "1_234_567_89_0;125000");
   10243                                     assert(ios.width() == 0);
   10244                                 }
   10245                                 ios.width(25);
   10246                                 left(ios);
   10247                                 {
   10248                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10249                                     std::string ex(str, iter.base());
   10250                                     assert(ex == "1_234_567_89_0;125000****");
   10251                                     assert(ios.width() == 0);
   10252                                 }
   10253                                 ios.width(25);
   10254                                 right(ios);
   10255                                 {
   10256                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10257                                     std::string ex(str, iter.base());
   10258                                     assert(ex == "****1_234_567_89_0;125000");
   10259                                     assert(ios.width() == 0);
   10260                                 }
   10261                                 ios.width(25);
   10262                                 internal(ios);
   10263                                 {
   10264                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10265                                     std::string ex(str, iter.base());
   10266                                     assert(ex == "****1_234_567_89_0;125000");
   10267                                     assert(ios.width() == 0);
   10268                                 }
   10269                             }
   10270                         }
   10271                     }
   10272                     showpos(ios);
   10273                     {
   10274                         noshowpoint(ios);
   10275                         {
   10276                             ios.imbue(lc);
   10277                             {
   10278                                 ios.width(0);
   10279                                 {
   10280                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10281                                     std::string ex(str, iter.base());
   10282                                     assert(ex == "+1234567890.125000");
   10283                                     assert(ios.width() == 0);
   10284                                 }
   10285                                 ios.width(25);
   10286                                 left(ios);
   10287                                 {
   10288                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10289                                     std::string ex(str, iter.base());
   10290                                     assert(ex == "+1234567890.125000*******");
   10291                                     assert(ios.width() == 0);
   10292                                 }
   10293                                 ios.width(25);
   10294                                 right(ios);
   10295                                 {
   10296                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10297                                     std::string ex(str, iter.base());
   10298                                     assert(ex == "*******+1234567890.125000");
   10299                                     assert(ios.width() == 0);
   10300                                 }
   10301                                 ios.width(25);
   10302                                 internal(ios);
   10303                                 {
   10304                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10305                                     std::string ex(str, iter.base());
   10306                                     assert(ex == "+*******1234567890.125000");
   10307                                     assert(ios.width() == 0);
   10308                                 }
   10309                             }
   10310                             ios.imbue(lg);
   10311                             {
   10312                                 ios.width(0);
   10313                                 {
   10314                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10315                                     std::string ex(str, iter.base());
   10316                                     assert(ex == "+1_234_567_89_0;125000");
   10317                                     assert(ios.width() == 0);
   10318                                 }
   10319                                 ios.width(25);
   10320                                 left(ios);
   10321                                 {
   10322                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10323                                     std::string ex(str, iter.base());
   10324                                     assert(ex == "+1_234_567_89_0;125000***");
   10325                                     assert(ios.width() == 0);
   10326                                 }
   10327                                 ios.width(25);
   10328                                 right(ios);
   10329                                 {
   10330                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10331                                     std::string ex(str, iter.base());
   10332                                     assert(ex == "***+1_234_567_89_0;125000");
   10333                                     assert(ios.width() == 0);
   10334                                 }
   10335                                 ios.width(25);
   10336                                 internal(ios);
   10337                                 {
   10338                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10339                                     std::string ex(str, iter.base());
   10340                                     assert(ex == "+***1_234_567_89_0;125000");
   10341                                     assert(ios.width() == 0);
   10342                                 }
   10343                             }
   10344                         }
   10345                         showpoint(ios);
   10346                         {
   10347                             ios.imbue(lc);
   10348                             {
   10349                                 ios.width(0);
   10350                                 {
   10351                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10352                                     std::string ex(str, iter.base());
   10353                                     assert(ex == "+1234567890.125000");
   10354                                     assert(ios.width() == 0);
   10355                                 }
   10356                                 ios.width(25);
   10357                                 left(ios);
   10358                                 {
   10359                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10360                                     std::string ex(str, iter.base());
   10361                                     assert(ex == "+1234567890.125000*******");
   10362                                     assert(ios.width() == 0);
   10363                                 }
   10364                                 ios.width(25);
   10365                                 right(ios);
   10366                                 {
   10367                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10368                                     std::string ex(str, iter.base());
   10369                                     assert(ex == "*******+1234567890.125000");
   10370                                     assert(ios.width() == 0);
   10371                                 }
   10372                                 ios.width(25);
   10373                                 internal(ios);
   10374                                 {
   10375                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10376                                     std::string ex(str, iter.base());
   10377                                     assert(ex == "+*******1234567890.125000");
   10378                                     assert(ios.width() == 0);
   10379                                 }
   10380                             }
   10381                             ios.imbue(lg);
   10382                             {
   10383                                 ios.width(0);
   10384                                 {
   10385                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10386                                     std::string ex(str, iter.base());
   10387                                     assert(ex == "+1_234_567_89_0;125000");
   10388                                     assert(ios.width() == 0);
   10389                                 }
   10390                                 ios.width(25);
   10391                                 left(ios);
   10392                                 {
   10393                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10394                                     std::string ex(str, iter.base());
   10395                                     assert(ex == "+1_234_567_89_0;125000***");
   10396                                     assert(ios.width() == 0);
   10397                                 }
   10398                                 ios.width(25);
   10399                                 right(ios);
   10400                                 {
   10401                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10402                                     std::string ex(str, iter.base());
   10403                                     assert(ex == "***+1_234_567_89_0;125000");
   10404                                     assert(ios.width() == 0);
   10405                                 }
   10406                                 ios.width(25);
   10407                                 internal(ios);
   10408                                 {
   10409                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10410                                     std::string ex(str, iter.base());
   10411                                     assert(ex == "+***1_234_567_89_0;125000");
   10412                                     assert(ios.width() == 0);
   10413                                 }
   10414                             }
   10415                         }
   10416                     }
   10417                 }
   10418                 uppercase(ios);
   10419                 {
   10420                     noshowpos(ios);
   10421                     {
   10422                         noshowpoint(ios);
   10423                         {
   10424                             ios.imbue(lc);
   10425                             {
   10426                                 ios.width(0);
   10427                                 {
   10428                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10429                                     std::string ex(str, iter.base());
   10430                                     assert(ex == "1234567890.125000");
   10431                                     assert(ios.width() == 0);
   10432                                 }
   10433                                 ios.width(25);
   10434                                 left(ios);
   10435                                 {
   10436                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10437                                     std::string ex(str, iter.base());
   10438                                     assert(ex == "1234567890.125000********");
   10439                                     assert(ios.width() == 0);
   10440                                 }
   10441                                 ios.width(25);
   10442                                 right(ios);
   10443                                 {
   10444                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10445                                     std::string ex(str, iter.base());
   10446                                     assert(ex == "********1234567890.125000");
   10447                                     assert(ios.width() == 0);
   10448                                 }
   10449                                 ios.width(25);
   10450                                 internal(ios);
   10451                                 {
   10452                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10453                                     std::string ex(str, iter.base());
   10454                                     assert(ex == "********1234567890.125000");
   10455                                     assert(ios.width() == 0);
   10456                                 }
   10457                             }
   10458                             ios.imbue(lg);
   10459                             {
   10460                                 ios.width(0);
   10461                                 {
   10462                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10463                                     std::string ex(str, iter.base());
   10464                                     assert(ex == "1_234_567_89_0;125000");
   10465                                     assert(ios.width() == 0);
   10466                                 }
   10467                                 ios.width(25);
   10468                                 left(ios);
   10469                                 {
   10470                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10471                                     std::string ex(str, iter.base());
   10472                                     assert(ex == "1_234_567_89_0;125000****");
   10473                                     assert(ios.width() == 0);
   10474                                 }
   10475                                 ios.width(25);
   10476                                 right(ios);
   10477                                 {
   10478                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10479                                     std::string ex(str, iter.base());
   10480                                     assert(ex == "****1_234_567_89_0;125000");
   10481                                     assert(ios.width() == 0);
   10482                                 }
   10483                                 ios.width(25);
   10484                                 internal(ios);
   10485                                 {
   10486                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10487                                     std::string ex(str, iter.base());
   10488                                     assert(ex == "****1_234_567_89_0;125000");
   10489                                     assert(ios.width() == 0);
   10490                                 }
   10491                             }
   10492                         }
   10493                         showpoint(ios);
   10494                         {
   10495                             ios.imbue(lc);
   10496                             {
   10497                                 ios.width(0);
   10498                                 {
   10499                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10500                                     std::string ex(str, iter.base());
   10501                                     assert(ex == "1234567890.125000");
   10502                                     assert(ios.width() == 0);
   10503                                 }
   10504                                 ios.width(25);
   10505                                 left(ios);
   10506                                 {
   10507                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10508                                     std::string ex(str, iter.base());
   10509                                     assert(ex == "1234567890.125000********");
   10510                                     assert(ios.width() == 0);
   10511                                 }
   10512                                 ios.width(25);
   10513                                 right(ios);
   10514                                 {
   10515                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10516                                     std::string ex(str, iter.base());
   10517                                     assert(ex == "********1234567890.125000");
   10518                                     assert(ios.width() == 0);
   10519                                 }
   10520                                 ios.width(25);
   10521                                 internal(ios);
   10522                                 {
   10523                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10524                                     std::string ex(str, iter.base());
   10525                                     assert(ex == "********1234567890.125000");
   10526                                     assert(ios.width() == 0);
   10527                                 }
   10528                             }
   10529                             ios.imbue(lg);
   10530                             {
   10531                                 ios.width(0);
   10532                                 {
   10533                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10534                                     std::string ex(str, iter.base());
   10535                                     assert(ex == "1_234_567_89_0;125000");
   10536                                     assert(ios.width() == 0);
   10537                                 }
   10538                                 ios.width(25);
   10539                                 left(ios);
   10540                                 {
   10541                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10542                                     std::string ex(str, iter.base());
   10543                                     assert(ex == "1_234_567_89_0;125000****");
   10544                                     assert(ios.width() == 0);
   10545                                 }
   10546                                 ios.width(25);
   10547                                 right(ios);
   10548                                 {
   10549                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10550                                     std::string ex(str, iter.base());
   10551                                     assert(ex == "****1_234_567_89_0;125000");
   10552                                     assert(ios.width() == 0);
   10553                                 }
   10554                                 ios.width(25);
   10555                                 internal(ios);
   10556                                 {
   10557                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10558                                     std::string ex(str, iter.base());
   10559                                     assert(ex == "****1_234_567_89_0;125000");
   10560                                     assert(ios.width() == 0);
   10561                                 }
   10562                             }
   10563                         }
   10564                     }
   10565                     showpos(ios);
   10566                     {
   10567                         noshowpoint(ios);
   10568                         {
   10569                             ios.imbue(lc);
   10570                             {
   10571                                 ios.width(0);
   10572                                 {
   10573                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10574                                     std::string ex(str, iter.base());
   10575                                     assert(ex == "+1234567890.125000");
   10576                                     assert(ios.width() == 0);
   10577                                 }
   10578                                 ios.width(25);
   10579                                 left(ios);
   10580                                 {
   10581                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10582                                     std::string ex(str, iter.base());
   10583                                     assert(ex == "+1234567890.125000*******");
   10584                                     assert(ios.width() == 0);
   10585                                 }
   10586                                 ios.width(25);
   10587                                 right(ios);
   10588                                 {
   10589                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10590                                     std::string ex(str, iter.base());
   10591                                     assert(ex == "*******+1234567890.125000");
   10592                                     assert(ios.width() == 0);
   10593                                 }
   10594                                 ios.width(25);
   10595                                 internal(ios);
   10596                                 {
   10597                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10598                                     std::string ex(str, iter.base());
   10599                                     assert(ex == "+*******1234567890.125000");
   10600                                     assert(ios.width() == 0);
   10601                                 }
   10602                             }
   10603                             ios.imbue(lg);
   10604                             {
   10605                                 ios.width(0);
   10606                                 {
   10607                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10608                                     std::string ex(str, iter.base());
   10609                                     assert(ex == "+1_234_567_89_0;125000");
   10610                                     assert(ios.width() == 0);
   10611                                 }
   10612                                 ios.width(25);
   10613                                 left(ios);
   10614                                 {
   10615                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10616                                     std::string ex(str, iter.base());
   10617                                     assert(ex == "+1_234_567_89_0;125000***");
   10618                                     assert(ios.width() == 0);
   10619                                 }
   10620                                 ios.width(25);
   10621                                 right(ios);
   10622                                 {
   10623                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10624                                     std::string ex(str, iter.base());
   10625                                     assert(ex == "***+1_234_567_89_0;125000");
   10626                                     assert(ios.width() == 0);
   10627                                 }
   10628                                 ios.width(25);
   10629                                 internal(ios);
   10630                                 {
   10631                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10632                                     std::string ex(str, iter.base());
   10633                                     assert(ex == "+***1_234_567_89_0;125000");
   10634                                     assert(ios.width() == 0);
   10635                                 }
   10636                             }
   10637                         }
   10638                         showpoint(ios);
   10639                         {
   10640                             ios.imbue(lc);
   10641                             {
   10642                                 ios.width(0);
   10643                                 {
   10644                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10645                                     std::string ex(str, iter.base());
   10646                                     assert(ex == "+1234567890.125000");
   10647                                     assert(ios.width() == 0);
   10648                                 }
   10649                                 ios.width(25);
   10650                                 left(ios);
   10651                                 {
   10652                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10653                                     std::string ex(str, iter.base());
   10654                                     assert(ex == "+1234567890.125000*******");
   10655                                     assert(ios.width() == 0);
   10656                                 }
   10657                                 ios.width(25);
   10658                                 right(ios);
   10659                                 {
   10660                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10661                                     std::string ex(str, iter.base());
   10662                                     assert(ex == "*******+1234567890.125000");
   10663                                     assert(ios.width() == 0);
   10664                                 }
   10665                                 ios.width(25);
   10666                                 internal(ios);
   10667                                 {
   10668                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10669                                     std::string ex(str, iter.base());
   10670                                     assert(ex == "+*******1234567890.125000");
   10671                                     assert(ios.width() == 0);
   10672                                 }
   10673                             }
   10674                             ios.imbue(lg);
   10675                             {
   10676                                 ios.width(0);
   10677                                 {
   10678                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10679                                     std::string ex(str, iter.base());
   10680                                     assert(ex == "+1_234_567_89_0;125000");
   10681                                     assert(ios.width() == 0);
   10682                                 }
   10683                                 ios.width(25);
   10684                                 left(ios);
   10685                                 {
   10686                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10687                                     std::string ex(str, iter.base());
   10688                                     assert(ex == "+1_234_567_89_0;125000***");
   10689                                     assert(ios.width() == 0);
   10690                                 }
   10691                                 ios.width(25);
   10692                                 right(ios);
   10693                                 {
   10694                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10695                                     std::string ex(str, iter.base());
   10696                                     assert(ex == "***+1_234_567_89_0;125000");
   10697                                     assert(ios.width() == 0);
   10698                                 }
   10699                                 ios.width(25);
   10700                                 internal(ios);
   10701                                 {
   10702                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10703                                     std::string ex(str, iter.base());
   10704                                     assert(ex == "+***1_234_567_89_0;125000");
   10705                                     assert(ios.width() == 0);
   10706                                 }
   10707                             }
   10708                         }
   10709                     }
   10710                 }
   10711             }
   10712             ios.precision(16);
   10713             {}
   10714             ios.precision(60);
   10715             {}
   10716         }
   10717     }
   10718 }
   10719 
   10720 void test5()
   10721 {
   10722     char str[200];
   10723     output_iterator<char*> iter;
   10724     std::locale lc = std::locale::classic();
   10725     std::locale lg(lc, new my_numpunct);
   10726     const my_facet f(1);
   10727     {
   10728         double v = -0.;
   10729         std::ios ios(0);
   10730         scientific(ios);
   10731         // %e
   10732         {
   10733             ios.precision(0);
   10734             {
   10735                 nouppercase(ios);
   10736                 {
   10737                     noshowpos(ios);
   10738                     {
   10739                         noshowpoint(ios);
   10740                         {
   10741                             ios.imbue(lc);
   10742                             {
   10743                                 ios.width(0);
   10744                                 {
   10745                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10746                                     std::string ex(str, iter.base());
   10747                                     assert(ex == "-0e+00");
   10748                                     assert(ios.width() == 0);
   10749                                 }
   10750                                 ios.width(25);
   10751                                 left(ios);
   10752                                 {
   10753                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10754                                     std::string ex(str, iter.base());
   10755                                     assert(ex == "-0e+00*******************");
   10756                                     assert(ios.width() == 0);
   10757                                 }
   10758                                 ios.width(25);
   10759                                 right(ios);
   10760                                 {
   10761                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10762                                     std::string ex(str, iter.base());
   10763                                     assert(ex == "*******************-0e+00");
   10764                                     assert(ios.width() == 0);
   10765                                 }
   10766                                 ios.width(25);
   10767                                 internal(ios);
   10768                                 {
   10769                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10770                                     std::string ex(str, iter.base());
   10771                                     assert(ex == "-*******************0e+00");
   10772                                     assert(ios.width() == 0);
   10773                                 }
   10774                             }
   10775                             ios.imbue(lg);
   10776                             {
   10777                                 ios.width(0);
   10778                                 {
   10779                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10780                                     std::string ex(str, iter.base());
   10781                                     assert(ex == "-0e+00");
   10782                                     assert(ios.width() == 0);
   10783                                 }
   10784                                 ios.width(25);
   10785                                 left(ios);
   10786                                 {
   10787                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10788                                     std::string ex(str, iter.base());
   10789                                     assert(ex == "-0e+00*******************");
   10790                                     assert(ios.width() == 0);
   10791                                 }
   10792                                 ios.width(25);
   10793                                 right(ios);
   10794                                 {
   10795                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10796                                     std::string ex(str, iter.base());
   10797                                     assert(ex == "*******************-0e+00");
   10798                                     assert(ios.width() == 0);
   10799                                 }
   10800                                 ios.width(25);
   10801                                 internal(ios);
   10802                                 {
   10803                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10804                                     std::string ex(str, iter.base());
   10805                                     assert(ex == "-*******************0e+00");
   10806                                     assert(ios.width() == 0);
   10807                                 }
   10808                             }
   10809                         }
   10810                         showpoint(ios);
   10811                         {
   10812                             ios.imbue(lc);
   10813                             {
   10814                                 ios.width(0);
   10815                                 {
   10816                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10817                                     std::string ex(str, iter.base());
   10818                                     assert(ex == "-0.e+00");
   10819                                     assert(ios.width() == 0);
   10820                                 }
   10821                                 ios.width(25);
   10822                                 left(ios);
   10823                                 {
   10824                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10825                                     std::string ex(str, iter.base());
   10826                                     assert(ex == "-0.e+00******************");
   10827                                     assert(ios.width() == 0);
   10828                                 }
   10829                                 ios.width(25);
   10830                                 right(ios);
   10831                                 {
   10832                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10833                                     std::string ex(str, iter.base());
   10834                                     assert(ex == "******************-0.e+00");
   10835                                     assert(ios.width() == 0);
   10836                                 }
   10837                                 ios.width(25);
   10838                                 internal(ios);
   10839                                 {
   10840                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10841                                     std::string ex(str, iter.base());
   10842                                     assert(ex == "-******************0.e+00");
   10843                                     assert(ios.width() == 0);
   10844                                 }
   10845                             }
   10846                             ios.imbue(lg);
   10847                             {
   10848                                 ios.width(0);
   10849                                 {
   10850                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10851                                     std::string ex(str, iter.base());
   10852                                     assert(ex == "-0;e+00");
   10853                                     assert(ios.width() == 0);
   10854                                 }
   10855                                 ios.width(25);
   10856                                 left(ios);
   10857                                 {
   10858                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10859                                     std::string ex(str, iter.base());
   10860                                     assert(ex == "-0;e+00******************");
   10861                                     assert(ios.width() == 0);
   10862                                 }
   10863                                 ios.width(25);
   10864                                 right(ios);
   10865                                 {
   10866                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10867                                     std::string ex(str, iter.base());
   10868                                     assert(ex == "******************-0;e+00");
   10869                                     assert(ios.width() == 0);
   10870                                 }
   10871                                 ios.width(25);
   10872                                 internal(ios);
   10873                                 {
   10874                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10875                                     std::string ex(str, iter.base());
   10876                                     assert(ex == "-******************0;e+00");
   10877                                     assert(ios.width() == 0);
   10878                                 }
   10879                             }
   10880                         }
   10881                     }
   10882                     showpos(ios);
   10883                     {
   10884                         noshowpoint(ios);
   10885                         {
   10886                             ios.imbue(lc);
   10887                             {
   10888                                 ios.width(0);
   10889                                 {
   10890                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10891                                     std::string ex(str, iter.base());
   10892                                     assert(ex == "-0e+00");
   10893                                     assert(ios.width() == 0);
   10894                                 }
   10895                                 ios.width(25);
   10896                                 left(ios);
   10897                                 {
   10898                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10899                                     std::string ex(str, iter.base());
   10900                                     assert(ex == "-0e+00*******************");
   10901                                     assert(ios.width() == 0);
   10902                                 }
   10903                                 ios.width(25);
   10904                                 right(ios);
   10905                                 {
   10906                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10907                                     std::string ex(str, iter.base());
   10908                                     assert(ex == "*******************-0e+00");
   10909                                     assert(ios.width() == 0);
   10910                                 }
   10911                                 ios.width(25);
   10912                                 internal(ios);
   10913                                 {
   10914                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10915                                     std::string ex(str, iter.base());
   10916                                     assert(ex == "-*******************0e+00");
   10917                                     assert(ios.width() == 0);
   10918                                 }
   10919                             }
   10920                             ios.imbue(lg);
   10921                             {
   10922                                 ios.width(0);
   10923                                 {
   10924                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10925                                     std::string ex(str, iter.base());
   10926                                     assert(ex == "-0e+00");
   10927                                     assert(ios.width() == 0);
   10928                                 }
   10929                                 ios.width(25);
   10930                                 left(ios);
   10931                                 {
   10932                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10933                                     std::string ex(str, iter.base());
   10934                                     assert(ex == "-0e+00*******************");
   10935                                     assert(ios.width() == 0);
   10936                                 }
   10937                                 ios.width(25);
   10938                                 right(ios);
   10939                                 {
   10940                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10941                                     std::string ex(str, iter.base());
   10942                                     assert(ex == "*******************-0e+00");
   10943                                     assert(ios.width() == 0);
   10944                                 }
   10945                                 ios.width(25);
   10946                                 internal(ios);
   10947                                 {
   10948                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10949                                     std::string ex(str, iter.base());
   10950                                     assert(ex == "-*******************0e+00");
   10951                                     assert(ios.width() == 0);
   10952                                 }
   10953                             }
   10954                         }
   10955                         showpoint(ios);
   10956                         {
   10957                             ios.imbue(lc);
   10958                             {
   10959                                 ios.width(0);
   10960                                 {
   10961                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10962                                     std::string ex(str, iter.base());
   10963                                     assert(ex == "-0.e+00");
   10964                                     assert(ios.width() == 0);
   10965                                 }
   10966                                 ios.width(25);
   10967                                 left(ios);
   10968                                 {
   10969                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10970                                     std::string ex(str, iter.base());
   10971                                     assert(ex == "-0.e+00******************");
   10972                                     assert(ios.width() == 0);
   10973                                 }
   10974                                 ios.width(25);
   10975                                 right(ios);
   10976                                 {
   10977                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10978                                     std::string ex(str, iter.base());
   10979                                     assert(ex == "******************-0.e+00");
   10980                                     assert(ios.width() == 0);
   10981                                 }
   10982                                 ios.width(25);
   10983                                 internal(ios);
   10984                                 {
   10985                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10986                                     std::string ex(str, iter.base());
   10987                                     assert(ex == "-******************0.e+00");
   10988                                     assert(ios.width() == 0);
   10989                                 }
   10990                             }
   10991                             ios.imbue(lg);
   10992                             {
   10993                                 ios.width(0);
   10994                                 {
   10995                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   10996                                     std::string ex(str, iter.base());
   10997                                     assert(ex == "-0;e+00");
   10998                                     assert(ios.width() == 0);
   10999                                 }
   11000                                 ios.width(25);
   11001                                 left(ios);
   11002                                 {
   11003                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11004                                     std::string ex(str, iter.base());
   11005                                     assert(ex == "-0;e+00******************");
   11006                                     assert(ios.width() == 0);
   11007                                 }
   11008                                 ios.width(25);
   11009                                 right(ios);
   11010                                 {
   11011                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11012                                     std::string ex(str, iter.base());
   11013                                     assert(ex == "******************-0;e+00");
   11014                                     assert(ios.width() == 0);
   11015                                 }
   11016                                 ios.width(25);
   11017                                 internal(ios);
   11018                                 {
   11019                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11020                                     std::string ex(str, iter.base());
   11021                                     assert(ex == "-******************0;e+00");
   11022                                     assert(ios.width() == 0);
   11023                                 }
   11024                             }
   11025                         }
   11026                     }
   11027                 }
   11028                 uppercase(ios);
   11029                 {
   11030                     noshowpos(ios);
   11031                     {
   11032                         noshowpoint(ios);
   11033                         {
   11034                             ios.imbue(lc);
   11035                             {
   11036                                 ios.width(0);
   11037                                 {
   11038                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11039                                     std::string ex(str, iter.base());
   11040                                     assert(ex == "-0E+00");
   11041                                     assert(ios.width() == 0);
   11042                                 }
   11043                                 ios.width(25);
   11044                                 left(ios);
   11045                                 {
   11046                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11047                                     std::string ex(str, iter.base());
   11048                                     assert(ex == "-0E+00*******************");
   11049                                     assert(ios.width() == 0);
   11050                                 }
   11051                                 ios.width(25);
   11052                                 right(ios);
   11053                                 {
   11054                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11055                                     std::string ex(str, iter.base());
   11056                                     assert(ex == "*******************-0E+00");
   11057                                     assert(ios.width() == 0);
   11058                                 }
   11059                                 ios.width(25);
   11060                                 internal(ios);
   11061                                 {
   11062                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11063                                     std::string ex(str, iter.base());
   11064                                     assert(ex == "-*******************0E+00");
   11065                                     assert(ios.width() == 0);
   11066                                 }
   11067                             }
   11068                             ios.imbue(lg);
   11069                             {
   11070                                 ios.width(0);
   11071                                 {
   11072                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11073                                     std::string ex(str, iter.base());
   11074                                     assert(ex == "-0E+00");
   11075                                     assert(ios.width() == 0);
   11076                                 }
   11077                                 ios.width(25);
   11078                                 left(ios);
   11079                                 {
   11080                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11081                                     std::string ex(str, iter.base());
   11082                                     assert(ex == "-0E+00*******************");
   11083                                     assert(ios.width() == 0);
   11084                                 }
   11085                                 ios.width(25);
   11086                                 right(ios);
   11087                                 {
   11088                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11089                                     std::string ex(str, iter.base());
   11090                                     assert(ex == "*******************-0E+00");
   11091                                     assert(ios.width() == 0);
   11092                                 }
   11093                                 ios.width(25);
   11094                                 internal(ios);
   11095                                 {
   11096                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11097                                     std::string ex(str, iter.base());
   11098                                     assert(ex == "-*******************0E+00");
   11099                                     assert(ios.width() == 0);
   11100                                 }
   11101                             }
   11102                         }
   11103                         showpoint(ios);
   11104                         {
   11105                             ios.imbue(lc);
   11106                             {
   11107                                 ios.width(0);
   11108                                 {
   11109                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11110                                     std::string ex(str, iter.base());
   11111                                     assert(ex == "-0.E+00");
   11112                                     assert(ios.width() == 0);
   11113                                 }
   11114                                 ios.width(25);
   11115                                 left(ios);
   11116                                 {
   11117                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11118                                     std::string ex(str, iter.base());
   11119                                     assert(ex == "-0.E+00******************");
   11120                                     assert(ios.width() == 0);
   11121                                 }
   11122                                 ios.width(25);
   11123                                 right(ios);
   11124                                 {
   11125                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11126                                     std::string ex(str, iter.base());
   11127                                     assert(ex == "******************-0.E+00");
   11128                                     assert(ios.width() == 0);
   11129                                 }
   11130                                 ios.width(25);
   11131                                 internal(ios);
   11132                                 {
   11133                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11134                                     std::string ex(str, iter.base());
   11135                                     assert(ex == "-******************0.E+00");
   11136                                     assert(ios.width() == 0);
   11137                                 }
   11138                             }
   11139                             ios.imbue(lg);
   11140                             {
   11141                                 ios.width(0);
   11142                                 {
   11143                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11144                                     std::string ex(str, iter.base());
   11145                                     assert(ex == "-0;E+00");
   11146                                     assert(ios.width() == 0);
   11147                                 }
   11148                                 ios.width(25);
   11149                                 left(ios);
   11150                                 {
   11151                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11152                                     std::string ex(str, iter.base());
   11153                                     assert(ex == "-0;E+00******************");
   11154                                     assert(ios.width() == 0);
   11155                                 }
   11156                                 ios.width(25);
   11157                                 right(ios);
   11158                                 {
   11159                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11160                                     std::string ex(str, iter.base());
   11161                                     assert(ex == "******************-0;E+00");
   11162                                     assert(ios.width() == 0);
   11163                                 }
   11164                                 ios.width(25);
   11165                                 internal(ios);
   11166                                 {
   11167                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11168                                     std::string ex(str, iter.base());
   11169                                     assert(ex == "-******************0;E+00");
   11170                                     assert(ios.width() == 0);
   11171                                 }
   11172                             }
   11173                         }
   11174                     }
   11175                     showpos(ios);
   11176                     {
   11177                         noshowpoint(ios);
   11178                         {
   11179                             ios.imbue(lc);
   11180                             {
   11181                                 ios.width(0);
   11182                                 {
   11183                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11184                                     std::string ex(str, iter.base());
   11185                                     assert(ex == "-0E+00");
   11186                                     assert(ios.width() == 0);
   11187                                 }
   11188                                 ios.width(25);
   11189                                 left(ios);
   11190                                 {
   11191                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11192                                     std::string ex(str, iter.base());
   11193                                     assert(ex == "-0E+00*******************");
   11194                                     assert(ios.width() == 0);
   11195                                 }
   11196                                 ios.width(25);
   11197                                 right(ios);
   11198                                 {
   11199                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11200                                     std::string ex(str, iter.base());
   11201                                     assert(ex == "*******************-0E+00");
   11202                                     assert(ios.width() == 0);
   11203                                 }
   11204                                 ios.width(25);
   11205                                 internal(ios);
   11206                                 {
   11207                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11208                                     std::string ex(str, iter.base());
   11209                                     assert(ex == "-*******************0E+00");
   11210                                     assert(ios.width() == 0);
   11211                                 }
   11212                             }
   11213                             ios.imbue(lg);
   11214                             {
   11215                                 ios.width(0);
   11216                                 {
   11217                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11218                                     std::string ex(str, iter.base());
   11219                                     assert(ex == "-0E+00");
   11220                                     assert(ios.width() == 0);
   11221                                 }
   11222                                 ios.width(25);
   11223                                 left(ios);
   11224                                 {
   11225                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11226                                     std::string ex(str, iter.base());
   11227                                     assert(ex == "-0E+00*******************");
   11228                                     assert(ios.width() == 0);
   11229                                 }
   11230                                 ios.width(25);
   11231                                 right(ios);
   11232                                 {
   11233                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11234                                     std::string ex(str, iter.base());
   11235                                     assert(ex == "*******************-0E+00");
   11236                                     assert(ios.width() == 0);
   11237                                 }
   11238                                 ios.width(25);
   11239                                 internal(ios);
   11240                                 {
   11241                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11242                                     std::string ex(str, iter.base());
   11243                                     assert(ex == "-*******************0E+00");
   11244                                     assert(ios.width() == 0);
   11245                                 }
   11246                             }
   11247                         }
   11248                         showpoint(ios);
   11249                         {
   11250                             ios.imbue(lc);
   11251                             {
   11252                                 ios.width(0);
   11253                                 {
   11254                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11255                                     std::string ex(str, iter.base());
   11256                                     assert(ex == "-0.E+00");
   11257                                     assert(ios.width() == 0);
   11258                                 }
   11259                                 ios.width(25);
   11260                                 left(ios);
   11261                                 {
   11262                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11263                                     std::string ex(str, iter.base());
   11264                                     assert(ex == "-0.E+00******************");
   11265                                     assert(ios.width() == 0);
   11266                                 }
   11267                                 ios.width(25);
   11268                                 right(ios);
   11269                                 {
   11270                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11271                                     std::string ex(str, iter.base());
   11272                                     assert(ex == "******************-0.E+00");
   11273                                     assert(ios.width() == 0);
   11274                                 }
   11275                                 ios.width(25);
   11276                                 internal(ios);
   11277                                 {
   11278                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11279                                     std::string ex(str, iter.base());
   11280                                     assert(ex == "-******************0.E+00");
   11281                                     assert(ios.width() == 0);
   11282                                 }
   11283                             }
   11284                             ios.imbue(lg);
   11285                             {
   11286                                 ios.width(0);
   11287                                 {
   11288                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11289                                     std::string ex(str, iter.base());
   11290                                     assert(ex == "-0;E+00");
   11291                                     assert(ios.width() == 0);
   11292                                 }
   11293                                 ios.width(25);
   11294                                 left(ios);
   11295                                 {
   11296                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11297                                     std::string ex(str, iter.base());
   11298                                     assert(ex == "-0;E+00******************");
   11299                                     assert(ios.width() == 0);
   11300                                 }
   11301                                 ios.width(25);
   11302                                 right(ios);
   11303                                 {
   11304                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11305                                     std::string ex(str, iter.base());
   11306                                     assert(ex == "******************-0;E+00");
   11307                                     assert(ios.width() == 0);
   11308                                 }
   11309                                 ios.width(25);
   11310                                 internal(ios);
   11311                                 {
   11312                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11313                                     std::string ex(str, iter.base());
   11314                                     assert(ex == "-******************0;E+00");
   11315                                     assert(ios.width() == 0);
   11316                                 }
   11317                             }
   11318                         }
   11319                     }
   11320                 }
   11321             }
   11322             ios.precision(1);
   11323             {
   11324                 nouppercase(ios);
   11325                 {
   11326                     noshowpos(ios);
   11327                     {
   11328                         noshowpoint(ios);
   11329                         {
   11330                             ios.imbue(lc);
   11331                             {
   11332                                 ios.width(0);
   11333                                 {
   11334                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11335                                     std::string ex(str, iter.base());
   11336                                     assert(ex == "-0.0e+00");
   11337                                     assert(ios.width() == 0);
   11338                                 }
   11339                                 ios.width(25);
   11340                                 left(ios);
   11341                                 {
   11342                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11343                                     std::string ex(str, iter.base());
   11344                                     assert(ex == "-0.0e+00*****************");
   11345                                     assert(ios.width() == 0);
   11346                                 }
   11347                                 ios.width(25);
   11348                                 right(ios);
   11349                                 {
   11350                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11351                                     std::string ex(str, iter.base());
   11352                                     assert(ex == "*****************-0.0e+00");
   11353                                     assert(ios.width() == 0);
   11354                                 }
   11355                                 ios.width(25);
   11356                                 internal(ios);
   11357                                 {
   11358                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11359                                     std::string ex(str, iter.base());
   11360                                     assert(ex == "-*****************0.0e+00");
   11361                                     assert(ios.width() == 0);
   11362                                 }
   11363                             }
   11364                             ios.imbue(lg);
   11365                             {
   11366                                 ios.width(0);
   11367                                 {
   11368                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11369                                     std::string ex(str, iter.base());
   11370                                     assert(ex == "-0;0e+00");
   11371                                     assert(ios.width() == 0);
   11372                                 }
   11373                                 ios.width(25);
   11374                                 left(ios);
   11375                                 {
   11376                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11377                                     std::string ex(str, iter.base());
   11378                                     assert(ex == "-0;0e+00*****************");
   11379                                     assert(ios.width() == 0);
   11380                                 }
   11381                                 ios.width(25);
   11382                                 right(ios);
   11383                                 {
   11384                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11385                                     std::string ex(str, iter.base());
   11386                                     assert(ex == "*****************-0;0e+00");
   11387                                     assert(ios.width() == 0);
   11388                                 }
   11389                                 ios.width(25);
   11390                                 internal(ios);
   11391                                 {
   11392                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11393                                     std::string ex(str, iter.base());
   11394                                     assert(ex == "-*****************0;0e+00");
   11395                                     assert(ios.width() == 0);
   11396                                 }
   11397                             }
   11398                         }
   11399                         showpoint(ios);
   11400                         {
   11401                             ios.imbue(lc);
   11402                             {
   11403                                 ios.width(0);
   11404                                 {
   11405                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11406                                     std::string ex(str, iter.base());
   11407                                     assert(ex == "-0.0e+00");
   11408                                     assert(ios.width() == 0);
   11409                                 }
   11410                                 ios.width(25);
   11411                                 left(ios);
   11412                                 {
   11413                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11414                                     std::string ex(str, iter.base());
   11415                                     assert(ex == "-0.0e+00*****************");
   11416                                     assert(ios.width() == 0);
   11417                                 }
   11418                                 ios.width(25);
   11419                                 right(ios);
   11420                                 {
   11421                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11422                                     std::string ex(str, iter.base());
   11423                                     assert(ex == "*****************-0.0e+00");
   11424                                     assert(ios.width() == 0);
   11425                                 }
   11426                                 ios.width(25);
   11427                                 internal(ios);
   11428                                 {
   11429                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11430                                     std::string ex(str, iter.base());
   11431                                     assert(ex == "-*****************0.0e+00");
   11432                                     assert(ios.width() == 0);
   11433                                 }
   11434                             }
   11435                             ios.imbue(lg);
   11436                             {
   11437                                 ios.width(0);
   11438                                 {
   11439                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11440                                     std::string ex(str, iter.base());
   11441                                     assert(ex == "-0;0e+00");
   11442                                     assert(ios.width() == 0);
   11443                                 }
   11444                                 ios.width(25);
   11445                                 left(ios);
   11446                                 {
   11447                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11448                                     std::string ex(str, iter.base());
   11449                                     assert(ex == "-0;0e+00*****************");
   11450                                     assert(ios.width() == 0);
   11451                                 }
   11452                                 ios.width(25);
   11453                                 right(ios);
   11454                                 {
   11455                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11456                                     std::string ex(str, iter.base());
   11457                                     assert(ex == "*****************-0;0e+00");
   11458                                     assert(ios.width() == 0);
   11459                                 }
   11460                                 ios.width(25);
   11461                                 internal(ios);
   11462                                 {
   11463                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11464                                     std::string ex(str, iter.base());
   11465                                     assert(ex == "-*****************0;0e+00");
   11466                                     assert(ios.width() == 0);
   11467                                 }
   11468                             }
   11469                         }
   11470                     }
   11471                     showpos(ios);
   11472                     {
   11473                         noshowpoint(ios);
   11474                         {
   11475                             ios.imbue(lc);
   11476                             {
   11477                                 ios.width(0);
   11478                                 {
   11479                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11480                                     std::string ex(str, iter.base());
   11481                                     assert(ex == "-0.0e+00");
   11482                                     assert(ios.width() == 0);
   11483                                 }
   11484                                 ios.width(25);
   11485                                 left(ios);
   11486                                 {
   11487                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11488                                     std::string ex(str, iter.base());
   11489                                     assert(ex == "-0.0e+00*****************");
   11490                                     assert(ios.width() == 0);
   11491                                 }
   11492                                 ios.width(25);
   11493                                 right(ios);
   11494                                 {
   11495                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11496                                     std::string ex(str, iter.base());
   11497                                     assert(ex == "*****************-0.0e+00");
   11498                                     assert(ios.width() == 0);
   11499                                 }
   11500                                 ios.width(25);
   11501                                 internal(ios);
   11502                                 {
   11503                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11504                                     std::string ex(str, iter.base());
   11505                                     assert(ex == "-*****************0.0e+00");
   11506                                     assert(ios.width() == 0);
   11507                                 }
   11508                             }
   11509                             ios.imbue(lg);
   11510                             {
   11511                                 ios.width(0);
   11512                                 {
   11513                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11514                                     std::string ex(str, iter.base());
   11515                                     assert(ex == "-0;0e+00");
   11516                                     assert(ios.width() == 0);
   11517                                 }
   11518                                 ios.width(25);
   11519                                 left(ios);
   11520                                 {
   11521                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11522                                     std::string ex(str, iter.base());
   11523                                     assert(ex == "-0;0e+00*****************");
   11524                                     assert(ios.width() == 0);
   11525                                 }
   11526                                 ios.width(25);
   11527                                 right(ios);
   11528                                 {
   11529                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11530                                     std::string ex(str, iter.base());
   11531                                     assert(ex == "*****************-0;0e+00");
   11532                                     assert(ios.width() == 0);
   11533                                 }
   11534                                 ios.width(25);
   11535                                 internal(ios);
   11536                                 {
   11537                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11538                                     std::string ex(str, iter.base());
   11539                                     assert(ex == "-*****************0;0e+00");
   11540                                     assert(ios.width() == 0);
   11541                                 }
   11542                             }
   11543                         }
   11544                         showpoint(ios);
   11545                         {
   11546                             ios.imbue(lc);
   11547                             {
   11548                                 ios.width(0);
   11549                                 {
   11550                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11551                                     std::string ex(str, iter.base());
   11552                                     assert(ex == "-0.0e+00");
   11553                                     assert(ios.width() == 0);
   11554                                 }
   11555                                 ios.width(25);
   11556                                 left(ios);
   11557                                 {
   11558                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11559                                     std::string ex(str, iter.base());
   11560                                     assert(ex == "-0.0e+00*****************");
   11561                                     assert(ios.width() == 0);
   11562                                 }
   11563                                 ios.width(25);
   11564                                 right(ios);
   11565                                 {
   11566                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11567                                     std::string ex(str, iter.base());
   11568                                     assert(ex == "*****************-0.0e+00");
   11569                                     assert(ios.width() == 0);
   11570                                 }
   11571                                 ios.width(25);
   11572                                 internal(ios);
   11573                                 {
   11574                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11575                                     std::string ex(str, iter.base());
   11576                                     assert(ex == "-*****************0.0e+00");
   11577                                     assert(ios.width() == 0);
   11578                                 }
   11579                             }
   11580                             ios.imbue(lg);
   11581                             {
   11582                                 ios.width(0);
   11583                                 {
   11584                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11585                                     std::string ex(str, iter.base());
   11586                                     assert(ex == "-0;0e+00");
   11587                                     assert(ios.width() == 0);
   11588                                 }
   11589                                 ios.width(25);
   11590                                 left(ios);
   11591                                 {
   11592                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11593                                     std::string ex(str, iter.base());
   11594                                     assert(ex == "-0;0e+00*****************");
   11595                                     assert(ios.width() == 0);
   11596                                 }
   11597                                 ios.width(25);
   11598                                 right(ios);
   11599                                 {
   11600                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11601                                     std::string ex(str, iter.base());
   11602                                     assert(ex == "*****************-0;0e+00");
   11603                                     assert(ios.width() == 0);
   11604                                 }
   11605                                 ios.width(25);
   11606                                 internal(ios);
   11607                                 {
   11608                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11609                                     std::string ex(str, iter.base());
   11610                                     assert(ex == "-*****************0;0e+00");
   11611                                     assert(ios.width() == 0);
   11612                                 }
   11613                             }
   11614                         }
   11615                     }
   11616                 }
   11617                 uppercase(ios);
   11618                 {
   11619                     noshowpos(ios);
   11620                     {
   11621                         noshowpoint(ios);
   11622                         {
   11623                             ios.imbue(lc);
   11624                             {
   11625                                 ios.width(0);
   11626                                 {
   11627                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11628                                     std::string ex(str, iter.base());
   11629                                     assert(ex == "-0.0E+00");
   11630                                     assert(ios.width() == 0);
   11631                                 }
   11632                                 ios.width(25);
   11633                                 left(ios);
   11634                                 {
   11635                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11636                                     std::string ex(str, iter.base());
   11637                                     assert(ex == "-0.0E+00*****************");
   11638                                     assert(ios.width() == 0);
   11639                                 }
   11640                                 ios.width(25);
   11641                                 right(ios);
   11642                                 {
   11643                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11644                                     std::string ex(str, iter.base());
   11645                                     assert(ex == "*****************-0.0E+00");
   11646                                     assert(ios.width() == 0);
   11647                                 }
   11648                                 ios.width(25);
   11649                                 internal(ios);
   11650                                 {
   11651                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11652                                     std::string ex(str, iter.base());
   11653                                     assert(ex == "-*****************0.0E+00");
   11654                                     assert(ios.width() == 0);
   11655                                 }
   11656                             }
   11657                             ios.imbue(lg);
   11658                             {
   11659                                 ios.width(0);
   11660                                 {
   11661                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11662                                     std::string ex(str, iter.base());
   11663                                     assert(ex == "-0;0E+00");
   11664                                     assert(ios.width() == 0);
   11665                                 }
   11666                                 ios.width(25);
   11667                                 left(ios);
   11668                                 {
   11669                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11670                                     std::string ex(str, iter.base());
   11671                                     assert(ex == "-0;0E+00*****************");
   11672                                     assert(ios.width() == 0);
   11673                                 }
   11674                                 ios.width(25);
   11675                                 right(ios);
   11676                                 {
   11677                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11678                                     std::string ex(str, iter.base());
   11679                                     assert(ex == "*****************-0;0E+00");
   11680                                     assert(ios.width() == 0);
   11681                                 }
   11682                                 ios.width(25);
   11683                                 internal(ios);
   11684                                 {
   11685                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11686                                     std::string ex(str, iter.base());
   11687                                     assert(ex == "-*****************0;0E+00");
   11688                                     assert(ios.width() == 0);
   11689                                 }
   11690                             }
   11691                         }
   11692                         showpoint(ios);
   11693                         {
   11694                             ios.imbue(lc);
   11695                             {
   11696                                 ios.width(0);
   11697                                 {
   11698                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11699                                     std::string ex(str, iter.base());
   11700                                     assert(ex == "-0.0E+00");
   11701                                     assert(ios.width() == 0);
   11702                                 }
   11703                                 ios.width(25);
   11704                                 left(ios);
   11705                                 {
   11706                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11707                                     std::string ex(str, iter.base());
   11708                                     assert(ex == "-0.0E+00*****************");
   11709                                     assert(ios.width() == 0);
   11710                                 }
   11711                                 ios.width(25);
   11712                                 right(ios);
   11713                                 {
   11714                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11715                                     std::string ex(str, iter.base());
   11716                                     assert(ex == "*****************-0.0E+00");
   11717                                     assert(ios.width() == 0);
   11718                                 }
   11719                                 ios.width(25);
   11720                                 internal(ios);
   11721                                 {
   11722                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11723                                     std::string ex(str, iter.base());
   11724                                     assert(ex == "-*****************0.0E+00");
   11725                                     assert(ios.width() == 0);
   11726                                 }
   11727                             }
   11728                             ios.imbue(lg);
   11729                             {
   11730                                 ios.width(0);
   11731                                 {
   11732                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11733                                     std::string ex(str, iter.base());
   11734                                     assert(ex == "-0;0E+00");
   11735                                     assert(ios.width() == 0);
   11736                                 }
   11737                                 ios.width(25);
   11738                                 left(ios);
   11739                                 {
   11740                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11741                                     std::string ex(str, iter.base());
   11742                                     assert(ex == "-0;0E+00*****************");
   11743                                     assert(ios.width() == 0);
   11744                                 }
   11745                                 ios.width(25);
   11746                                 right(ios);
   11747                                 {
   11748                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11749                                     std::string ex(str, iter.base());
   11750                                     assert(ex == "*****************-0;0E+00");
   11751                                     assert(ios.width() == 0);
   11752                                 }
   11753                                 ios.width(25);
   11754                                 internal(ios);
   11755                                 {
   11756                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11757                                     std::string ex(str, iter.base());
   11758                                     assert(ex == "-*****************0;0E+00");
   11759                                     assert(ios.width() == 0);
   11760                                 }
   11761                             }
   11762                         }
   11763                     }
   11764                     showpos(ios);
   11765                     {
   11766                         noshowpoint(ios);
   11767                         {
   11768                             ios.imbue(lc);
   11769                             {
   11770                                 ios.width(0);
   11771                                 {
   11772                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11773                                     std::string ex(str, iter.base());
   11774                                     assert(ex == "-0.0E+00");
   11775                                     assert(ios.width() == 0);
   11776                                 }
   11777                                 ios.width(25);
   11778                                 left(ios);
   11779                                 {
   11780                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11781                                     std::string ex(str, iter.base());
   11782                                     assert(ex == "-0.0E+00*****************");
   11783                                     assert(ios.width() == 0);
   11784                                 }
   11785                                 ios.width(25);
   11786                                 right(ios);
   11787                                 {
   11788                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11789                                     std::string ex(str, iter.base());
   11790                                     assert(ex == "*****************-0.0E+00");
   11791                                     assert(ios.width() == 0);
   11792                                 }
   11793                                 ios.width(25);
   11794                                 internal(ios);
   11795                                 {
   11796                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11797                                     std::string ex(str, iter.base());
   11798                                     assert(ex == "-*****************0.0E+00");
   11799                                     assert(ios.width() == 0);
   11800                                 }
   11801                             }
   11802                             ios.imbue(lg);
   11803                             {
   11804                                 ios.width(0);
   11805                                 {
   11806                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11807                                     std::string ex(str, iter.base());
   11808                                     assert(ex == "-0;0E+00");
   11809                                     assert(ios.width() == 0);
   11810                                 }
   11811                                 ios.width(25);
   11812                                 left(ios);
   11813                                 {
   11814                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11815                                     std::string ex(str, iter.base());
   11816                                     assert(ex == "-0;0E+00*****************");
   11817                                     assert(ios.width() == 0);
   11818                                 }
   11819                                 ios.width(25);
   11820                                 right(ios);
   11821                                 {
   11822                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11823                                     std::string ex(str, iter.base());
   11824                                     assert(ex == "*****************-0;0E+00");
   11825                                     assert(ios.width() == 0);
   11826                                 }
   11827                                 ios.width(25);
   11828                                 internal(ios);
   11829                                 {
   11830                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11831                                     std::string ex(str, iter.base());
   11832                                     assert(ex == "-*****************0;0E+00");
   11833                                     assert(ios.width() == 0);
   11834                                 }
   11835                             }
   11836                         }
   11837                         showpoint(ios);
   11838                         {
   11839                             ios.imbue(lc);
   11840                             {
   11841                                 ios.width(0);
   11842                                 {
   11843                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11844                                     std::string ex(str, iter.base());
   11845                                     assert(ex == "-0.0E+00");
   11846                                     assert(ios.width() == 0);
   11847                                 }
   11848                                 ios.width(25);
   11849                                 left(ios);
   11850                                 {
   11851                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11852                                     std::string ex(str, iter.base());
   11853                                     assert(ex == "-0.0E+00*****************");
   11854                                     assert(ios.width() == 0);
   11855                                 }
   11856                                 ios.width(25);
   11857                                 right(ios);
   11858                                 {
   11859                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11860                                     std::string ex(str, iter.base());
   11861                                     assert(ex == "*****************-0.0E+00");
   11862                                     assert(ios.width() == 0);
   11863                                 }
   11864                                 ios.width(25);
   11865                                 internal(ios);
   11866                                 {
   11867                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11868                                     std::string ex(str, iter.base());
   11869                                     assert(ex == "-*****************0.0E+00");
   11870                                     assert(ios.width() == 0);
   11871                                 }
   11872                             }
   11873                             ios.imbue(lg);
   11874                             {
   11875                                 ios.width(0);
   11876                                 {
   11877                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11878                                     std::string ex(str, iter.base());
   11879                                     assert(ex == "-0;0E+00");
   11880                                     assert(ios.width() == 0);
   11881                                 }
   11882                                 ios.width(25);
   11883                                 left(ios);
   11884                                 {
   11885                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11886                                     std::string ex(str, iter.base());
   11887                                     assert(ex == "-0;0E+00*****************");
   11888                                     assert(ios.width() == 0);
   11889                                 }
   11890                                 ios.width(25);
   11891                                 right(ios);
   11892                                 {
   11893                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11894                                     std::string ex(str, iter.base());
   11895                                     assert(ex == "*****************-0;0E+00");
   11896                                     assert(ios.width() == 0);
   11897                                 }
   11898                                 ios.width(25);
   11899                                 internal(ios);
   11900                                 {
   11901                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11902                                     std::string ex(str, iter.base());
   11903                                     assert(ex == "-*****************0;0E+00");
   11904                                     assert(ios.width() == 0);
   11905                                 }
   11906                             }
   11907                         }
   11908                     }
   11909                 }
   11910             }
   11911             ios.precision(6);
   11912             {
   11913                 nouppercase(ios);
   11914                 {
   11915                     noshowpos(ios);
   11916                     {
   11917                         noshowpoint(ios);
   11918                         {
   11919                             ios.imbue(lc);
   11920                             {
   11921                                 ios.width(0);
   11922                                 {
   11923                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11924                                     std::string ex(str, iter.base());
   11925                                     assert(ex == "-0.000000e+00");
   11926                                     assert(ios.width() == 0);
   11927                                 }
   11928                                 ios.width(25);
   11929                                 left(ios);
   11930                                 {
   11931                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11932                                     std::string ex(str, iter.base());
   11933                                     assert(ex == "-0.000000e+00************");
   11934                                     assert(ios.width() == 0);
   11935                                 }
   11936                                 ios.width(25);
   11937                                 right(ios);
   11938                                 {
   11939                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11940                                     std::string ex(str, iter.base());
   11941                                     assert(ex == "************-0.000000e+00");
   11942                                     assert(ios.width() == 0);
   11943                                 }
   11944                                 ios.width(25);
   11945                                 internal(ios);
   11946                                 {
   11947                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11948                                     std::string ex(str, iter.base());
   11949                                     assert(ex == "-************0.000000e+00");
   11950                                     assert(ios.width() == 0);
   11951                                 }
   11952                             }
   11953                             ios.imbue(lg);
   11954                             {
   11955                                 ios.width(0);
   11956                                 {
   11957                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11958                                     std::string ex(str, iter.base());
   11959                                     assert(ex == "-0;000000e+00");
   11960                                     assert(ios.width() == 0);
   11961                                 }
   11962                                 ios.width(25);
   11963                                 left(ios);
   11964                                 {
   11965                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11966                                     std::string ex(str, iter.base());
   11967                                     assert(ex == "-0;000000e+00************");
   11968                                     assert(ios.width() == 0);
   11969                                 }
   11970                                 ios.width(25);
   11971                                 right(ios);
   11972                                 {
   11973                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11974                                     std::string ex(str, iter.base());
   11975                                     assert(ex == "************-0;000000e+00");
   11976                                     assert(ios.width() == 0);
   11977                                 }
   11978                                 ios.width(25);
   11979                                 internal(ios);
   11980                                 {
   11981                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11982                                     std::string ex(str, iter.base());
   11983                                     assert(ex == "-************0;000000e+00");
   11984                                     assert(ios.width() == 0);
   11985                                 }
   11986                             }
   11987                         }
   11988                         showpoint(ios);
   11989                         {
   11990                             ios.imbue(lc);
   11991                             {
   11992                                 ios.width(0);
   11993                                 {
   11994                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   11995                                     std::string ex(str, iter.base());
   11996                                     assert(ex == "-0.000000e+00");
   11997                                     assert(ios.width() == 0);
   11998                                 }
   11999                                 ios.width(25);
   12000                                 left(ios);
   12001                                 {
   12002                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12003                                     std::string ex(str, iter.base());
   12004                                     assert(ex == "-0.000000e+00************");
   12005                                     assert(ios.width() == 0);
   12006                                 }
   12007                                 ios.width(25);
   12008                                 right(ios);
   12009                                 {
   12010                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12011                                     std::string ex(str, iter.base());
   12012                                     assert(ex == "************-0.000000e+00");
   12013                                     assert(ios.width() == 0);
   12014                                 }
   12015                                 ios.width(25);
   12016                                 internal(ios);
   12017                                 {
   12018                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12019                                     std::string ex(str, iter.base());
   12020                                     assert(ex == "-************0.000000e+00");
   12021                                     assert(ios.width() == 0);
   12022                                 }
   12023                             }
   12024                             ios.imbue(lg);
   12025                             {
   12026                                 ios.width(0);
   12027                                 {
   12028                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12029                                     std::string ex(str, iter.base());
   12030                                     assert(ex == "-0;000000e+00");
   12031                                     assert(ios.width() == 0);
   12032                                 }
   12033                                 ios.width(25);
   12034                                 left(ios);
   12035                                 {
   12036                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12037                                     std::string ex(str, iter.base());
   12038                                     assert(ex == "-0;000000e+00************");
   12039                                     assert(ios.width() == 0);
   12040                                 }
   12041                                 ios.width(25);
   12042                                 right(ios);
   12043                                 {
   12044                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12045                                     std::string ex(str, iter.base());
   12046                                     assert(ex == "************-0;000000e+00");
   12047                                     assert(ios.width() == 0);
   12048                                 }
   12049                                 ios.width(25);
   12050                                 internal(ios);
   12051                                 {
   12052                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12053                                     std::string ex(str, iter.base());
   12054                                     assert(ex == "-************0;000000e+00");
   12055                                     assert(ios.width() == 0);
   12056                                 }
   12057                             }
   12058                         }
   12059                     }
   12060                     showpos(ios);
   12061                     {
   12062                         noshowpoint(ios);
   12063                         {
   12064                             ios.imbue(lc);
   12065                             {
   12066                                 ios.width(0);
   12067                                 {
   12068                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12069                                     std::string ex(str, iter.base());
   12070                                     assert(ex == "-0.000000e+00");
   12071                                     assert(ios.width() == 0);
   12072                                 }
   12073                                 ios.width(25);
   12074                                 left(ios);
   12075                                 {
   12076                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12077                                     std::string ex(str, iter.base());
   12078                                     assert(ex == "-0.000000e+00************");
   12079                                     assert(ios.width() == 0);
   12080                                 }
   12081                                 ios.width(25);
   12082                                 right(ios);
   12083                                 {
   12084                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12085                                     std::string ex(str, iter.base());
   12086                                     assert(ex == "************-0.000000e+00");
   12087                                     assert(ios.width() == 0);
   12088                                 }
   12089                                 ios.width(25);
   12090                                 internal(ios);
   12091                                 {
   12092                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12093                                     std::string ex(str, iter.base());
   12094                                     assert(ex == "-************0.000000e+00");
   12095                                     assert(ios.width() == 0);
   12096                                 }
   12097                             }
   12098                             ios.imbue(lg);
   12099                             {
   12100                                 ios.width(0);
   12101                                 {
   12102                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12103                                     std::string ex(str, iter.base());
   12104                                     assert(ex == "-0;000000e+00");
   12105                                     assert(ios.width() == 0);
   12106                                 }
   12107                                 ios.width(25);
   12108                                 left(ios);
   12109                                 {
   12110                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12111                                     std::string ex(str, iter.base());
   12112                                     assert(ex == "-0;000000e+00************");
   12113                                     assert(ios.width() == 0);
   12114                                 }
   12115                                 ios.width(25);
   12116                                 right(ios);
   12117                                 {
   12118                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12119                                     std::string ex(str, iter.base());
   12120                                     assert(ex == "************-0;000000e+00");
   12121                                     assert(ios.width() == 0);
   12122                                 }
   12123                                 ios.width(25);
   12124                                 internal(ios);
   12125                                 {
   12126                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12127                                     std::string ex(str, iter.base());
   12128                                     assert(ex == "-************0;000000e+00");
   12129                                     assert(ios.width() == 0);
   12130                                 }
   12131                             }
   12132                         }
   12133                         showpoint(ios);
   12134                         {
   12135                             ios.imbue(lc);
   12136                             {
   12137                                 ios.width(0);
   12138                                 {
   12139                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12140                                     std::string ex(str, iter.base());
   12141                                     assert(ex == "-0.000000e+00");
   12142                                     assert(ios.width() == 0);
   12143                                 }
   12144                                 ios.width(25);
   12145                                 left(ios);
   12146                                 {
   12147                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12148                                     std::string ex(str, iter.base());
   12149                                     assert(ex == "-0.000000e+00************");
   12150                                     assert(ios.width() == 0);
   12151                                 }
   12152                                 ios.width(25);
   12153                                 right(ios);
   12154                                 {
   12155                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12156                                     std::string ex(str, iter.base());
   12157                                     assert(ex == "************-0.000000e+00");
   12158                                     assert(ios.width() == 0);
   12159                                 }
   12160                                 ios.width(25);
   12161                                 internal(ios);
   12162                                 {
   12163                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12164                                     std::string ex(str, iter.base());
   12165                                     assert(ex == "-************0.000000e+00");
   12166                                     assert(ios.width() == 0);
   12167                                 }
   12168                             }
   12169                             ios.imbue(lg);
   12170                             {
   12171                                 ios.width(0);
   12172                                 {
   12173                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12174                                     std::string ex(str, iter.base());
   12175                                     assert(ex == "-0;000000e+00");
   12176                                     assert(ios.width() == 0);
   12177                                 }
   12178                                 ios.width(25);
   12179                                 left(ios);
   12180                                 {
   12181                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12182                                     std::string ex(str, iter.base());
   12183                                     assert(ex == "-0;000000e+00************");
   12184                                     assert(ios.width() == 0);
   12185                                 }
   12186                                 ios.width(25);
   12187                                 right(ios);
   12188                                 {
   12189                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12190                                     std::string ex(str, iter.base());
   12191                                     assert(ex == "************-0;000000e+00");
   12192                                     assert(ios.width() == 0);
   12193                                 }
   12194                                 ios.width(25);
   12195                                 internal(ios);
   12196                                 {
   12197                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12198                                     std::string ex(str, iter.base());
   12199                                     assert(ex == "-************0;000000e+00");
   12200                                     assert(ios.width() == 0);
   12201                                 }
   12202                             }
   12203                         }
   12204                     }
   12205                 }
   12206                 uppercase(ios);
   12207                 {
   12208                     noshowpos(ios);
   12209                     {
   12210                         noshowpoint(ios);
   12211                         {
   12212                             ios.imbue(lc);
   12213                             {
   12214                                 ios.width(0);
   12215                                 {
   12216                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12217                                     std::string ex(str, iter.base());
   12218                                     assert(ex == "-0.000000E+00");
   12219                                     assert(ios.width() == 0);
   12220                                 }
   12221                                 ios.width(25);
   12222                                 left(ios);
   12223                                 {
   12224                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12225                                     std::string ex(str, iter.base());
   12226                                     assert(ex == "-0.000000E+00************");
   12227                                     assert(ios.width() == 0);
   12228                                 }
   12229                                 ios.width(25);
   12230                                 right(ios);
   12231                                 {
   12232                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12233                                     std::string ex(str, iter.base());
   12234                                     assert(ex == "************-0.000000E+00");
   12235                                     assert(ios.width() == 0);
   12236                                 }
   12237                                 ios.width(25);
   12238                                 internal(ios);
   12239                                 {
   12240                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12241                                     std::string ex(str, iter.base());
   12242                                     assert(ex == "-************0.000000E+00");
   12243                                     assert(ios.width() == 0);
   12244                                 }
   12245                             }
   12246                             ios.imbue(lg);
   12247                             {
   12248                                 ios.width(0);
   12249                                 {
   12250                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12251                                     std::string ex(str, iter.base());
   12252                                     assert(ex == "-0;000000E+00");
   12253                                     assert(ios.width() == 0);
   12254                                 }
   12255                                 ios.width(25);
   12256                                 left(ios);
   12257                                 {
   12258                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12259                                     std::string ex(str, iter.base());
   12260                                     assert(ex == "-0;000000E+00************");
   12261                                     assert(ios.width() == 0);
   12262                                 }
   12263                                 ios.width(25);
   12264                                 right(ios);
   12265                                 {
   12266                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12267                                     std::string ex(str, iter.base());
   12268                                     assert(ex == "************-0;000000E+00");
   12269                                     assert(ios.width() == 0);
   12270                                 }
   12271                                 ios.width(25);
   12272                                 internal(ios);
   12273                                 {
   12274                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12275                                     std::string ex(str, iter.base());
   12276                                     assert(ex == "-************0;000000E+00");
   12277                                     assert(ios.width() == 0);
   12278                                 }
   12279                             }
   12280                         }
   12281                         showpoint(ios);
   12282                         {
   12283                             ios.imbue(lc);
   12284                             {
   12285                                 ios.width(0);
   12286                                 {
   12287                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12288                                     std::string ex(str, iter.base());
   12289                                     assert(ex == "-0.000000E+00");
   12290                                     assert(ios.width() == 0);
   12291                                 }
   12292                                 ios.width(25);
   12293                                 left(ios);
   12294                                 {
   12295                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12296                                     std::string ex(str, iter.base());
   12297                                     assert(ex == "-0.000000E+00************");
   12298                                     assert(ios.width() == 0);
   12299                                 }
   12300                                 ios.width(25);
   12301                                 right(ios);
   12302                                 {
   12303                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12304                                     std::string ex(str, iter.base());
   12305                                     assert(ex == "************-0.000000E+00");
   12306                                     assert(ios.width() == 0);
   12307                                 }
   12308                                 ios.width(25);
   12309                                 internal(ios);
   12310                                 {
   12311                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12312                                     std::string ex(str, iter.base());
   12313                                     assert(ex == "-************0.000000E+00");
   12314                                     assert(ios.width() == 0);
   12315                                 }
   12316                             }
   12317                             ios.imbue(lg);
   12318                             {
   12319                                 ios.width(0);
   12320                                 {
   12321                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12322                                     std::string ex(str, iter.base());
   12323                                     assert(ex == "-0;000000E+00");
   12324                                     assert(ios.width() == 0);
   12325                                 }
   12326                                 ios.width(25);
   12327                                 left(ios);
   12328                                 {
   12329                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12330                                     std::string ex(str, iter.base());
   12331                                     assert(ex == "-0;000000E+00************");
   12332                                     assert(ios.width() == 0);
   12333                                 }
   12334                                 ios.width(25);
   12335                                 right(ios);
   12336                                 {
   12337                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12338                                     std::string ex(str, iter.base());
   12339                                     assert(ex == "************-0;000000E+00");
   12340                                     assert(ios.width() == 0);
   12341                                 }
   12342                                 ios.width(25);
   12343                                 internal(ios);
   12344                                 {
   12345                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12346                                     std::string ex(str, iter.base());
   12347                                     assert(ex == "-************0;000000E+00");
   12348                                     assert(ios.width() == 0);
   12349                                 }
   12350                             }
   12351                         }
   12352                     }
   12353                     showpos(ios);
   12354                     {
   12355                         noshowpoint(ios);
   12356                         {
   12357                             ios.imbue(lc);
   12358                             {
   12359                                 ios.width(0);
   12360                                 {
   12361                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12362                                     std::string ex(str, iter.base());
   12363                                     assert(ex == "-0.000000E+00");
   12364                                     assert(ios.width() == 0);
   12365                                 }
   12366                                 ios.width(25);
   12367                                 left(ios);
   12368                                 {
   12369                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12370                                     std::string ex(str, iter.base());
   12371                                     assert(ex == "-0.000000E+00************");
   12372                                     assert(ios.width() == 0);
   12373                                 }
   12374                                 ios.width(25);
   12375                                 right(ios);
   12376                                 {
   12377                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12378                                     std::string ex(str, iter.base());
   12379                                     assert(ex == "************-0.000000E+00");
   12380                                     assert(ios.width() == 0);
   12381                                 }
   12382                                 ios.width(25);
   12383                                 internal(ios);
   12384                                 {
   12385                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12386                                     std::string ex(str, iter.base());
   12387                                     assert(ex == "-************0.000000E+00");
   12388                                     assert(ios.width() == 0);
   12389                                 }
   12390                             }
   12391                             ios.imbue(lg);
   12392                             {
   12393                                 ios.width(0);
   12394                                 {
   12395                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12396                                     std::string ex(str, iter.base());
   12397                                     assert(ex == "-0;000000E+00");
   12398                                     assert(ios.width() == 0);
   12399                                 }
   12400                                 ios.width(25);
   12401                                 left(ios);
   12402                                 {
   12403                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12404                                     std::string ex(str, iter.base());
   12405                                     assert(ex == "-0;000000E+00************");
   12406                                     assert(ios.width() == 0);
   12407                                 }
   12408                                 ios.width(25);
   12409                                 right(ios);
   12410                                 {
   12411                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12412                                     std::string ex(str, iter.base());
   12413                                     assert(ex == "************-0;000000E+00");
   12414                                     assert(ios.width() == 0);
   12415                                 }
   12416                                 ios.width(25);
   12417                                 internal(ios);
   12418                                 {
   12419                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12420                                     std::string ex(str, iter.base());
   12421                                     assert(ex == "-************0;000000E+00");
   12422                                     assert(ios.width() == 0);
   12423                                 }
   12424                             }
   12425                         }
   12426                         showpoint(ios);
   12427                         {
   12428                             ios.imbue(lc);
   12429                             {
   12430                                 ios.width(0);
   12431                                 {
   12432                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12433                                     std::string ex(str, iter.base());
   12434                                     assert(ex == "-0.000000E+00");
   12435                                     assert(ios.width() == 0);
   12436                                 }
   12437                                 ios.width(25);
   12438                                 left(ios);
   12439                                 {
   12440                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12441                                     std::string ex(str, iter.base());
   12442                                     assert(ex == "-0.000000E+00************");
   12443                                     assert(ios.width() == 0);
   12444                                 }
   12445                                 ios.width(25);
   12446                                 right(ios);
   12447                                 {
   12448                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12449                                     std::string ex(str, iter.base());
   12450                                     assert(ex == "************-0.000000E+00");
   12451                                     assert(ios.width() == 0);
   12452                                 }
   12453                                 ios.width(25);
   12454                                 internal(ios);
   12455                                 {
   12456                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12457                                     std::string ex(str, iter.base());
   12458                                     assert(ex == "-************0.000000E+00");
   12459                                     assert(ios.width() == 0);
   12460                                 }
   12461                             }
   12462                             ios.imbue(lg);
   12463                             {
   12464                                 ios.width(0);
   12465                                 {
   12466                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12467                                     std::string ex(str, iter.base());
   12468                                     assert(ex == "-0;000000E+00");
   12469                                     assert(ios.width() == 0);
   12470                                 }
   12471                                 ios.width(25);
   12472                                 left(ios);
   12473                                 {
   12474                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12475                                     std::string ex(str, iter.base());
   12476                                     assert(ex == "-0;000000E+00************");
   12477                                     assert(ios.width() == 0);
   12478                                 }
   12479                                 ios.width(25);
   12480                                 right(ios);
   12481                                 {
   12482                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12483                                     std::string ex(str, iter.base());
   12484                                     assert(ex == "************-0;000000E+00");
   12485                                     assert(ios.width() == 0);
   12486                                 }
   12487                                 ios.width(25);
   12488                                 internal(ios);
   12489                                 {
   12490                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12491                                     std::string ex(str, iter.base());
   12492                                     assert(ex == "-************0;000000E+00");
   12493                                     assert(ios.width() == 0);
   12494                                 }
   12495                             }
   12496                         }
   12497                     }
   12498                 }
   12499             }
   12500             ios.precision(16);
   12501             {
   12502             }
   12503             ios.precision(60);
   12504             {
   12505             }
   12506         }
   12507     }
   12508 }
   12509 
   12510 void test6()
   12511 {
   12512     char str[200];
   12513     output_iterator<char*> iter;
   12514     std::locale lc = std::locale::classic();
   12515     std::locale lg(lc, new my_numpunct);
   12516     const my_facet f(1);
   12517     {
   12518         double v = 1234567890.125;
   12519         std::ios ios(0);
   12520         scientific(ios);
   12521         // %e
   12522         {
   12523             ios.precision(0);
   12524             {
   12525                 nouppercase(ios);
   12526                 {
   12527                     noshowpos(ios);
   12528                     {
   12529                         noshowpoint(ios);
   12530                         {
   12531                             ios.imbue(lc);
   12532                             {
   12533                                 ios.width(0);
   12534                                 {
   12535                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12536                                     std::string ex(str, iter.base());
   12537                                     assert(ex == "1e+09");
   12538                                     assert(ios.width() == 0);
   12539                                 }
   12540                                 ios.width(25);
   12541                                 left(ios);
   12542                                 {
   12543                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12544                                     std::string ex(str, iter.base());
   12545                                     assert(ex == "1e+09********************");
   12546                                     assert(ios.width() == 0);
   12547                                 }
   12548                                 ios.width(25);
   12549                                 right(ios);
   12550                                 {
   12551                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12552                                     std::string ex(str, iter.base());
   12553                                     assert(ex == "********************1e+09");
   12554                                     assert(ios.width() == 0);
   12555                                 }
   12556                                 ios.width(25);
   12557                                 internal(ios);
   12558                                 {
   12559                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12560                                     std::string ex(str, iter.base());
   12561                                     assert(ex == "********************1e+09");
   12562                                     assert(ios.width() == 0);
   12563                                 }
   12564                             }
   12565                             ios.imbue(lg);
   12566                             {
   12567                                 ios.width(0);
   12568                                 {
   12569                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12570                                     std::string ex(str, iter.base());
   12571                                     assert(ex == "1e+09");
   12572                                     assert(ios.width() == 0);
   12573                                 }
   12574                                 ios.width(25);
   12575                                 left(ios);
   12576                                 {
   12577                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12578                                     std::string ex(str, iter.base());
   12579                                     assert(ex == "1e+09********************");
   12580                                     assert(ios.width() == 0);
   12581                                 }
   12582                                 ios.width(25);
   12583                                 right(ios);
   12584                                 {
   12585                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12586                                     std::string ex(str, iter.base());
   12587                                     assert(ex == "********************1e+09");
   12588                                     assert(ios.width() == 0);
   12589                                 }
   12590                                 ios.width(25);
   12591                                 internal(ios);
   12592                                 {
   12593                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12594                                     std::string ex(str, iter.base());
   12595                                     assert(ex == "********************1e+09");
   12596                                     assert(ios.width() == 0);
   12597                                 }
   12598                             }
   12599                         }
   12600                         showpoint(ios);
   12601                         {
   12602                             ios.imbue(lc);
   12603                             {
   12604                                 ios.width(0);
   12605                                 {
   12606                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12607                                     std::string ex(str, iter.base());
   12608                                     assert(ex == "1.e+09");
   12609                                     assert(ios.width() == 0);
   12610                                 }
   12611                                 ios.width(25);
   12612                                 left(ios);
   12613                                 {
   12614                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12615                                     std::string ex(str, iter.base());
   12616                                     assert(ex == "1.e+09*******************");
   12617                                     assert(ios.width() == 0);
   12618                                 }
   12619                                 ios.width(25);
   12620                                 right(ios);
   12621                                 {
   12622                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12623                                     std::string ex(str, iter.base());
   12624                                     assert(ex == "*******************1.e+09");
   12625                                     assert(ios.width() == 0);
   12626                                 }
   12627                                 ios.width(25);
   12628                                 internal(ios);
   12629                                 {
   12630                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12631                                     std::string ex(str, iter.base());
   12632                                     assert(ex == "*******************1.e+09");
   12633                                     assert(ios.width() == 0);
   12634                                 }
   12635                             }
   12636                             ios.imbue(lg);
   12637                             {
   12638                                 ios.width(0);
   12639                                 {
   12640                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12641                                     std::string ex(str, iter.base());
   12642                                     assert(ex == "1;e+09");
   12643                                     assert(ios.width() == 0);
   12644                                 }
   12645                                 ios.width(25);
   12646                                 left(ios);
   12647                                 {
   12648                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12649                                     std::string ex(str, iter.base());
   12650                                     assert(ex == "1;e+09*******************");
   12651                                     assert(ios.width() == 0);
   12652                                 }
   12653                                 ios.width(25);
   12654                                 right(ios);
   12655                                 {
   12656                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12657                                     std::string ex(str, iter.base());
   12658                                     assert(ex == "*******************1;e+09");
   12659                                     assert(ios.width() == 0);
   12660                                 }
   12661                                 ios.width(25);
   12662                                 internal(ios);
   12663                                 {
   12664                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12665                                     std::string ex(str, iter.base());
   12666                                     assert(ex == "*******************1;e+09");
   12667                                     assert(ios.width() == 0);
   12668                                 }
   12669                             }
   12670                         }
   12671                     }
   12672                     showpos(ios);
   12673                     {
   12674                         noshowpoint(ios);
   12675                         {
   12676                             ios.imbue(lc);
   12677                             {
   12678                                 ios.width(0);
   12679                                 {
   12680                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12681                                     std::string ex(str, iter.base());
   12682                                     assert(ex == "+1e+09");
   12683                                     assert(ios.width() == 0);
   12684                                 }
   12685                                 ios.width(25);
   12686                                 left(ios);
   12687                                 {
   12688                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12689                                     std::string ex(str, iter.base());
   12690                                     assert(ex == "+1e+09*******************");
   12691                                     assert(ios.width() == 0);
   12692                                 }
   12693                                 ios.width(25);
   12694                                 right(ios);
   12695                                 {
   12696                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12697                                     std::string ex(str, iter.base());
   12698                                     assert(ex == "*******************+1e+09");
   12699                                     assert(ios.width() == 0);
   12700                                 }
   12701                                 ios.width(25);
   12702                                 internal(ios);
   12703                                 {
   12704                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12705                                     std::string ex(str, iter.base());
   12706                                     assert(ex == "+*******************1e+09");
   12707                                     assert(ios.width() == 0);
   12708                                 }
   12709                             }
   12710                             ios.imbue(lg);
   12711                             {
   12712                                 ios.width(0);
   12713                                 {
   12714                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12715                                     std::string ex(str, iter.base());
   12716                                     assert(ex == "+1e+09");
   12717                                     assert(ios.width() == 0);
   12718                                 }
   12719                                 ios.width(25);
   12720                                 left(ios);
   12721                                 {
   12722                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12723                                     std::string ex(str, iter.base());
   12724                                     assert(ex == "+1e+09*******************");
   12725                                     assert(ios.width() == 0);
   12726                                 }
   12727                                 ios.width(25);
   12728                                 right(ios);
   12729                                 {
   12730                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12731                                     std::string ex(str, iter.base());
   12732                                     assert(ex == "*******************+1e+09");
   12733                                     assert(ios.width() == 0);
   12734                                 }
   12735                                 ios.width(25);
   12736                                 internal(ios);
   12737                                 {
   12738                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12739                                     std::string ex(str, iter.base());
   12740                                     assert(ex == "+*******************1e+09");
   12741                                     assert(ios.width() == 0);
   12742                                 }
   12743                             }
   12744                         }
   12745                         showpoint(ios);
   12746                         {
   12747                             ios.imbue(lc);
   12748                             {
   12749                                 ios.width(0);
   12750                                 {
   12751                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12752                                     std::string ex(str, iter.base());
   12753                                     assert(ex == "+1.e+09");
   12754                                     assert(ios.width() == 0);
   12755                                 }
   12756                                 ios.width(25);
   12757                                 left(ios);
   12758                                 {
   12759                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12760                                     std::string ex(str, iter.base());
   12761                                     assert(ex == "+1.e+09******************");
   12762                                     assert(ios.width() == 0);
   12763                                 }
   12764                                 ios.width(25);
   12765                                 right(ios);
   12766                                 {
   12767                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12768                                     std::string ex(str, iter.base());
   12769                                     assert(ex == "******************+1.e+09");
   12770                                     assert(ios.width() == 0);
   12771                                 }
   12772                                 ios.width(25);
   12773                                 internal(ios);
   12774                                 {
   12775                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12776                                     std::string ex(str, iter.base());
   12777                                     assert(ex == "+******************1.e+09");
   12778                                     assert(ios.width() == 0);
   12779                                 }
   12780                             }
   12781                             ios.imbue(lg);
   12782                             {
   12783                                 ios.width(0);
   12784                                 {
   12785                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12786                                     std::string ex(str, iter.base());
   12787                                     assert(ex == "+1;e+09");
   12788                                     assert(ios.width() == 0);
   12789                                 }
   12790                                 ios.width(25);
   12791                                 left(ios);
   12792                                 {
   12793                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12794                                     std::string ex(str, iter.base());
   12795                                     assert(ex == "+1;e+09******************");
   12796                                     assert(ios.width() == 0);
   12797                                 }
   12798                                 ios.width(25);
   12799                                 right(ios);
   12800                                 {
   12801                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12802                                     std::string ex(str, iter.base());
   12803                                     assert(ex == "******************+1;e+09");
   12804                                     assert(ios.width() == 0);
   12805                                 }
   12806                                 ios.width(25);
   12807                                 internal(ios);
   12808                                 {
   12809                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12810                                     std::string ex(str, iter.base());
   12811                                     assert(ex == "+******************1;e+09");
   12812                                     assert(ios.width() == 0);
   12813                                 }
   12814                             }
   12815                         }
   12816                     }
   12817                 }
   12818                 uppercase(ios);
   12819                 {
   12820                     noshowpos(ios);
   12821                     {
   12822                         noshowpoint(ios);
   12823                         {
   12824                             ios.imbue(lc);
   12825                             {
   12826                                 ios.width(0);
   12827                                 {
   12828                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12829                                     std::string ex(str, iter.base());
   12830                                     assert(ex == "1E+09");
   12831                                     assert(ios.width() == 0);
   12832                                 }
   12833                                 ios.width(25);
   12834                                 left(ios);
   12835                                 {
   12836                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12837                                     std::string ex(str, iter.base());
   12838                                     assert(ex == "1E+09********************");
   12839                                     assert(ios.width() == 0);
   12840                                 }
   12841                                 ios.width(25);
   12842                                 right(ios);
   12843                                 {
   12844                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12845                                     std::string ex(str, iter.base());
   12846                                     assert(ex == "********************1E+09");
   12847                                     assert(ios.width() == 0);
   12848                                 }
   12849                                 ios.width(25);
   12850                                 internal(ios);
   12851                                 {
   12852                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12853                                     std::string ex(str, iter.base());
   12854                                     assert(ex == "********************1E+09");
   12855                                     assert(ios.width() == 0);
   12856                                 }
   12857                             }
   12858                             ios.imbue(lg);
   12859                             {
   12860                                 ios.width(0);
   12861                                 {
   12862                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12863                                     std::string ex(str, iter.base());
   12864                                     assert(ex == "1E+09");
   12865                                     assert(ios.width() == 0);
   12866                                 }
   12867                                 ios.width(25);
   12868                                 left(ios);
   12869                                 {
   12870                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12871                                     std::string ex(str, iter.base());
   12872                                     assert(ex == "1E+09********************");
   12873                                     assert(ios.width() == 0);
   12874                                 }
   12875                                 ios.width(25);
   12876                                 right(ios);
   12877                                 {
   12878                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12879                                     std::string ex(str, iter.base());
   12880                                     assert(ex == "********************1E+09");
   12881                                     assert(ios.width() == 0);
   12882                                 }
   12883                                 ios.width(25);
   12884                                 internal(ios);
   12885                                 {
   12886                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12887                                     std::string ex(str, iter.base());
   12888                                     assert(ex == "********************1E+09");
   12889                                     assert(ios.width() == 0);
   12890                                 }
   12891                             }
   12892                         }
   12893                         showpoint(ios);
   12894                         {
   12895                             ios.imbue(lc);
   12896                             {
   12897                                 ios.width(0);
   12898                                 {
   12899                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12900                                     std::string ex(str, iter.base());
   12901                                     assert(ex == "1.E+09");
   12902                                     assert(ios.width() == 0);
   12903                                 }
   12904                                 ios.width(25);
   12905                                 left(ios);
   12906                                 {
   12907                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12908                                     std::string ex(str, iter.base());
   12909                                     assert(ex == "1.E+09*******************");
   12910                                     assert(ios.width() == 0);
   12911                                 }
   12912                                 ios.width(25);
   12913                                 right(ios);
   12914                                 {
   12915                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12916                                     std::string ex(str, iter.base());
   12917                                     assert(ex == "*******************1.E+09");
   12918                                     assert(ios.width() == 0);
   12919                                 }
   12920                                 ios.width(25);
   12921                                 internal(ios);
   12922                                 {
   12923                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12924                                     std::string ex(str, iter.base());
   12925                                     assert(ex == "*******************1.E+09");
   12926                                     assert(ios.width() == 0);
   12927                                 }
   12928                             }
   12929                             ios.imbue(lg);
   12930                             {
   12931                                 ios.width(0);
   12932                                 {
   12933                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12934                                     std::string ex(str, iter.base());
   12935                                     assert(ex == "1;E+09");
   12936                                     assert(ios.width() == 0);
   12937                                 }
   12938                                 ios.width(25);
   12939                                 left(ios);
   12940                                 {
   12941                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12942                                     std::string ex(str, iter.base());
   12943                                     assert(ex == "1;E+09*******************");
   12944                                     assert(ios.width() == 0);
   12945                                 }
   12946                                 ios.width(25);
   12947                                 right(ios);
   12948                                 {
   12949                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12950                                     std::string ex(str, iter.base());
   12951                                     assert(ex == "*******************1;E+09");
   12952                                     assert(ios.width() == 0);
   12953                                 }
   12954                                 ios.width(25);
   12955                                 internal(ios);
   12956                                 {
   12957                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12958                                     std::string ex(str, iter.base());
   12959                                     assert(ex == "*******************1;E+09");
   12960                                     assert(ios.width() == 0);
   12961                                 }
   12962                             }
   12963                         }
   12964                     }
   12965                     showpos(ios);
   12966                     {
   12967                         noshowpoint(ios);
   12968                         {
   12969                             ios.imbue(lc);
   12970                             {
   12971                                 ios.width(0);
   12972                                 {
   12973                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12974                                     std::string ex(str, iter.base());
   12975                                     assert(ex == "+1E+09");
   12976                                     assert(ios.width() == 0);
   12977                                 }
   12978                                 ios.width(25);
   12979                                 left(ios);
   12980                                 {
   12981                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12982                                     std::string ex(str, iter.base());
   12983                                     assert(ex == "+1E+09*******************");
   12984                                     assert(ios.width() == 0);
   12985                                 }
   12986                                 ios.width(25);
   12987                                 right(ios);
   12988                                 {
   12989                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12990                                     std::string ex(str, iter.base());
   12991                                     assert(ex == "*******************+1E+09");
   12992                                     assert(ios.width() == 0);
   12993                                 }
   12994                                 ios.width(25);
   12995                                 internal(ios);
   12996                                 {
   12997                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   12998                                     std::string ex(str, iter.base());
   12999                                     assert(ex == "+*******************1E+09");
   13000                                     assert(ios.width() == 0);
   13001                                 }
   13002                             }
   13003                             ios.imbue(lg);
   13004                             {
   13005                                 ios.width(0);
   13006                                 {
   13007                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13008                                     std::string ex(str, iter.base());
   13009                                     assert(ex == "+1E+09");
   13010                                     assert(ios.width() == 0);
   13011                                 }
   13012                                 ios.width(25);
   13013                                 left(ios);
   13014                                 {
   13015                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13016                                     std::string ex(str, iter.base());
   13017                                     assert(ex == "+1E+09*******************");
   13018                                     assert(ios.width() == 0);
   13019                                 }
   13020                                 ios.width(25);
   13021                                 right(ios);
   13022                                 {
   13023                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13024                                     std::string ex(str, iter.base());
   13025                                     assert(ex == "*******************+1E+09");
   13026                                     assert(ios.width() == 0);
   13027                                 }
   13028                                 ios.width(25);
   13029                                 internal(ios);
   13030                                 {
   13031                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13032                                     std::string ex(str, iter.base());
   13033                                     assert(ex == "+*******************1E+09");
   13034                                     assert(ios.width() == 0);
   13035                                 }
   13036                             }
   13037                         }
   13038                         showpoint(ios);
   13039                         {
   13040                             ios.imbue(lc);
   13041                             {
   13042                                 ios.width(0);
   13043                                 {
   13044                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13045                                     std::string ex(str, iter.base());
   13046                                     assert(ex == "+1.E+09");
   13047                                     assert(ios.width() == 0);
   13048                                 }
   13049                                 ios.width(25);
   13050                                 left(ios);
   13051                                 {
   13052                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13053                                     std::string ex(str, iter.base());
   13054                                     assert(ex == "+1.E+09******************");
   13055                                     assert(ios.width() == 0);
   13056                                 }
   13057                                 ios.width(25);
   13058                                 right(ios);
   13059                                 {
   13060                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13061                                     std::string ex(str, iter.base());
   13062                                     assert(ex == "******************+1.E+09");
   13063                                     assert(ios.width() == 0);
   13064                                 }
   13065                                 ios.width(25);
   13066                                 internal(ios);
   13067                                 {
   13068                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13069                                     std::string ex(str, iter.base());
   13070                                     assert(ex == "+******************1.E+09");
   13071                                     assert(ios.width() == 0);
   13072                                 }
   13073                             }
   13074                             ios.imbue(lg);
   13075                             {
   13076                                 ios.width(0);
   13077                                 {
   13078                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13079                                     std::string ex(str, iter.base());
   13080                                     assert(ex == "+1;E+09");
   13081                                     assert(ios.width() == 0);
   13082                                 }
   13083                                 ios.width(25);
   13084                                 left(ios);
   13085                                 {
   13086                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13087                                     std::string ex(str, iter.base());
   13088                                     assert(ex == "+1;E+09******************");
   13089                                     assert(ios.width() == 0);
   13090                                 }
   13091                                 ios.width(25);
   13092                                 right(ios);
   13093                                 {
   13094                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13095                                     std::string ex(str, iter.base());
   13096                                     assert(ex == "******************+1;E+09");
   13097                                     assert(ios.width() == 0);
   13098                                 }
   13099                                 ios.width(25);
   13100                                 internal(ios);
   13101                                 {
   13102                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13103                                     std::string ex(str, iter.base());
   13104                                     assert(ex == "+******************1;E+09");
   13105                                     assert(ios.width() == 0);
   13106                                 }
   13107                             }
   13108                         }
   13109                     }
   13110                 }
   13111             }
   13112             ios.precision(1);
   13113             {
   13114                 nouppercase(ios);
   13115                 {
   13116                     noshowpos(ios);
   13117                     {
   13118                         noshowpoint(ios);
   13119                         {
   13120                             ios.imbue(lc);
   13121                             {
   13122                                 ios.width(0);
   13123                                 {
   13124                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13125                                     std::string ex(str, iter.base());
   13126                                     assert(ex == "1.2e+09");
   13127                                     assert(ios.width() == 0);
   13128                                 }
   13129                                 ios.width(25);
   13130                                 left(ios);
   13131                                 {
   13132                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13133                                     std::string ex(str, iter.base());
   13134                                     assert(ex == "1.2e+09******************");
   13135                                     assert(ios.width() == 0);
   13136                                 }
   13137                                 ios.width(25);
   13138                                 right(ios);
   13139                                 {
   13140                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13141                                     std::string ex(str, iter.base());
   13142                                     assert(ex == "******************1.2e+09");
   13143                                     assert(ios.width() == 0);
   13144                                 }
   13145                                 ios.width(25);
   13146                                 internal(ios);
   13147                                 {
   13148                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13149                                     std::string ex(str, iter.base());
   13150                                     assert(ex == "******************1.2e+09");
   13151                                     assert(ios.width() == 0);
   13152                                 }
   13153                             }
   13154                             ios.imbue(lg);
   13155                             {
   13156                                 ios.width(0);
   13157                                 {
   13158                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13159                                     std::string ex(str, iter.base());
   13160                                     assert(ex == "1;2e+09");
   13161                                     assert(ios.width() == 0);
   13162                                 }
   13163                                 ios.width(25);
   13164                                 left(ios);
   13165                                 {
   13166                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13167                                     std::string ex(str, iter.base());
   13168                                     assert(ex == "1;2e+09******************");
   13169                                     assert(ios.width() == 0);
   13170                                 }
   13171                                 ios.width(25);
   13172                                 right(ios);
   13173                                 {
   13174                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13175                                     std::string ex(str, iter.base());
   13176                                     assert(ex == "******************1;2e+09");
   13177                                     assert(ios.width() == 0);
   13178                                 }
   13179                                 ios.width(25);
   13180                                 internal(ios);
   13181                                 {
   13182                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13183                                     std::string ex(str, iter.base());
   13184                                     assert(ex == "******************1;2e+09");
   13185                                     assert(ios.width() == 0);
   13186                                 }
   13187                             }
   13188                         }
   13189                         showpoint(ios);
   13190                         {
   13191                             ios.imbue(lc);
   13192                             {
   13193                                 ios.width(0);
   13194                                 {
   13195                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13196                                     std::string ex(str, iter.base());
   13197                                     assert(ex == "1.2e+09");
   13198                                     assert(ios.width() == 0);
   13199                                 }
   13200                                 ios.width(25);
   13201                                 left(ios);
   13202                                 {
   13203                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13204                                     std::string ex(str, iter.base());
   13205                                     assert(ex == "1.2e+09******************");
   13206                                     assert(ios.width() == 0);
   13207                                 }
   13208                                 ios.width(25);
   13209                                 right(ios);
   13210                                 {
   13211                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13212                                     std::string ex(str, iter.base());
   13213                                     assert(ex == "******************1.2e+09");
   13214                                     assert(ios.width() == 0);
   13215                                 }
   13216                                 ios.width(25);
   13217                                 internal(ios);
   13218                                 {
   13219                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13220                                     std::string ex(str, iter.base());
   13221                                     assert(ex == "******************1.2e+09");
   13222                                     assert(ios.width() == 0);
   13223                                 }
   13224                             }
   13225                             ios.imbue(lg);
   13226                             {
   13227                                 ios.width(0);
   13228                                 {
   13229                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13230                                     std::string ex(str, iter.base());
   13231                                     assert(ex == "1;2e+09");
   13232                                     assert(ios.width() == 0);
   13233                                 }
   13234                                 ios.width(25);
   13235                                 left(ios);
   13236                                 {
   13237                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13238                                     std::string ex(str, iter.base());
   13239                                     assert(ex == "1;2e+09******************");
   13240                                     assert(ios.width() == 0);
   13241                                 }
   13242                                 ios.width(25);
   13243                                 right(ios);
   13244                                 {
   13245                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13246                                     std::string ex(str, iter.base());
   13247                                     assert(ex == "******************1;2e+09");
   13248                                     assert(ios.width() == 0);
   13249                                 }
   13250                                 ios.width(25);
   13251                                 internal(ios);
   13252                                 {
   13253                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13254                                     std::string ex(str, iter.base());
   13255                                     assert(ex == "******************1;2e+09");
   13256                                     assert(ios.width() == 0);
   13257                                 }
   13258                             }
   13259                         }
   13260                     }
   13261                     showpos(ios);
   13262                     {
   13263                         noshowpoint(ios);
   13264                         {
   13265                             ios.imbue(lc);
   13266                             {
   13267                                 ios.width(0);
   13268                                 {
   13269                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13270                                     std::string ex(str, iter.base());
   13271                                     assert(ex == "+1.2e+09");
   13272                                     assert(ios.width() == 0);
   13273                                 }
   13274                                 ios.width(25);
   13275                                 left(ios);
   13276                                 {
   13277                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13278                                     std::string ex(str, iter.base());
   13279                                     assert(ex == "+1.2e+09*****************");
   13280                                     assert(ios.width() == 0);
   13281                                 }
   13282                                 ios.width(25);
   13283                                 right(ios);
   13284                                 {
   13285                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13286                                     std::string ex(str, iter.base());
   13287                                     assert(ex == "*****************+1.2e+09");
   13288                                     assert(ios.width() == 0);
   13289                                 }
   13290                                 ios.width(25);
   13291                                 internal(ios);
   13292                                 {
   13293                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13294                                     std::string ex(str, iter.base());
   13295                                     assert(ex == "+*****************1.2e+09");
   13296                                     assert(ios.width() == 0);
   13297                                 }
   13298                             }
   13299                             ios.imbue(lg);
   13300                             {
   13301                                 ios.width(0);
   13302                                 {
   13303                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13304                                     std::string ex(str, iter.base());
   13305                                     assert(ex == "+1;2e+09");
   13306                                     assert(ios.width() == 0);
   13307                                 }
   13308                                 ios.width(25);
   13309                                 left(ios);
   13310                                 {
   13311                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13312                                     std::string ex(str, iter.base());
   13313                                     assert(ex == "+1;2e+09*****************");
   13314                                     assert(ios.width() == 0);
   13315                                 }
   13316                                 ios.width(25);
   13317                                 right(ios);
   13318                                 {
   13319                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13320                                     std::string ex(str, iter.base());
   13321                                     assert(ex == "*****************+1;2e+09");
   13322                                     assert(ios.width() == 0);
   13323                                 }
   13324                                 ios.width(25);
   13325                                 internal(ios);
   13326                                 {
   13327                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13328                                     std::string ex(str, iter.base());
   13329                                     assert(ex == "+*****************1;2e+09");
   13330                                     assert(ios.width() == 0);
   13331                                 }
   13332                             }
   13333                         }
   13334                         showpoint(ios);
   13335                         {
   13336                             ios.imbue(lc);
   13337                             {
   13338                                 ios.width(0);
   13339                                 {
   13340                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13341                                     std::string ex(str, iter.base());
   13342                                     assert(ex == "+1.2e+09");
   13343                                     assert(ios.width() == 0);
   13344                                 }
   13345                                 ios.width(25);
   13346                                 left(ios);
   13347                                 {
   13348                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13349                                     std::string ex(str, iter.base());
   13350                                     assert(ex == "+1.2e+09*****************");
   13351                                     assert(ios.width() == 0);
   13352                                 }
   13353                                 ios.width(25);
   13354                                 right(ios);
   13355                                 {
   13356                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13357                                     std::string ex(str, iter.base());
   13358                                     assert(ex == "*****************+1.2e+09");
   13359                                     assert(ios.width() == 0);
   13360                                 }
   13361                                 ios.width(25);
   13362                                 internal(ios);
   13363                                 {
   13364                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13365                                     std::string ex(str, iter.base());
   13366                                     assert(ex == "+*****************1.2e+09");
   13367                                     assert(ios.width() == 0);
   13368                                 }
   13369                             }
   13370                             ios.imbue(lg);
   13371                             {
   13372                                 ios.width(0);
   13373                                 {
   13374                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13375                                     std::string ex(str, iter.base());
   13376                                     assert(ex == "+1;2e+09");
   13377                                     assert(ios.width() == 0);
   13378                                 }
   13379                                 ios.width(25);
   13380                                 left(ios);
   13381                                 {
   13382                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13383                                     std::string ex(str, iter.base());
   13384                                     assert(ex == "+1;2e+09*****************");
   13385                                     assert(ios.width() == 0);
   13386                                 }
   13387                                 ios.width(25);
   13388                                 right(ios);
   13389                                 {
   13390                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13391                                     std::string ex(str, iter.base());
   13392                                     assert(ex == "*****************+1;2e+09");
   13393                                     assert(ios.width() == 0);
   13394                                 }
   13395                                 ios.width(25);
   13396                                 internal(ios);
   13397                                 {
   13398                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13399                                     std::string ex(str, iter.base());
   13400                                     assert(ex == "+*****************1;2e+09");
   13401                                     assert(ios.width() == 0);
   13402                                 }
   13403                             }
   13404                         }
   13405                     }
   13406                 }
   13407                 uppercase(ios);
   13408                 {
   13409                     noshowpos(ios);
   13410                     {
   13411                         noshowpoint(ios);
   13412                         {
   13413                             ios.imbue(lc);
   13414                             {
   13415                                 ios.width(0);
   13416                                 {
   13417                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13418                                     std::string ex(str, iter.base());
   13419                                     assert(ex == "1.2E+09");
   13420                                     assert(ios.width() == 0);
   13421                                 }
   13422                                 ios.width(25);
   13423                                 left(ios);
   13424                                 {
   13425                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13426                                     std::string ex(str, iter.base());
   13427                                     assert(ex == "1.2E+09******************");
   13428                                     assert(ios.width() == 0);
   13429                                 }
   13430                                 ios.width(25);
   13431                                 right(ios);
   13432                                 {
   13433                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13434                                     std::string ex(str, iter.base());
   13435                                     assert(ex == "******************1.2E+09");
   13436                                     assert(ios.width() == 0);
   13437                                 }
   13438                                 ios.width(25);
   13439                                 internal(ios);
   13440                                 {
   13441                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13442                                     std::string ex(str, iter.base());
   13443                                     assert(ex == "******************1.2E+09");
   13444                                     assert(ios.width() == 0);
   13445                                 }
   13446                             }
   13447                             ios.imbue(lg);
   13448                             {
   13449                                 ios.width(0);
   13450                                 {
   13451                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13452                                     std::string ex(str, iter.base());
   13453                                     assert(ex == "1;2E+09");
   13454                                     assert(ios.width() == 0);
   13455                                 }
   13456                                 ios.width(25);
   13457                                 left(ios);
   13458                                 {
   13459                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13460                                     std::string ex(str, iter.base());
   13461                                     assert(ex == "1;2E+09******************");
   13462                                     assert(ios.width() == 0);
   13463                                 }
   13464                                 ios.width(25);
   13465                                 right(ios);
   13466                                 {
   13467                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13468                                     std::string ex(str, iter.base());
   13469                                     assert(ex == "******************1;2E+09");
   13470                                     assert(ios.width() == 0);
   13471                                 }
   13472                                 ios.width(25);
   13473                                 internal(ios);
   13474                                 {
   13475                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13476                                     std::string ex(str, iter.base());
   13477                                     assert(ex == "******************1;2E+09");
   13478                                     assert(ios.width() == 0);
   13479                                 }
   13480                             }
   13481                         }
   13482                         showpoint(ios);
   13483                         {
   13484                             ios.imbue(lc);
   13485                             {
   13486                                 ios.width(0);
   13487                                 {
   13488                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13489                                     std::string ex(str, iter.base());
   13490                                     assert(ex == "1.2E+09");
   13491                                     assert(ios.width() == 0);
   13492                                 }
   13493                                 ios.width(25);
   13494                                 left(ios);
   13495                                 {
   13496                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13497                                     std::string ex(str, iter.base());
   13498                                     assert(ex == "1.2E+09******************");
   13499                                     assert(ios.width() == 0);
   13500                                 }
   13501                                 ios.width(25);
   13502                                 right(ios);
   13503                                 {
   13504                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13505                                     std::string ex(str, iter.base());
   13506                                     assert(ex == "******************1.2E+09");
   13507                                     assert(ios.width() == 0);
   13508                                 }
   13509                                 ios.width(25);
   13510                                 internal(ios);
   13511                                 {
   13512                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13513                                     std::string ex(str, iter.base());
   13514                                     assert(ex == "******************1.2E+09");
   13515                                     assert(ios.width() == 0);
   13516                                 }
   13517                             }
   13518                             ios.imbue(lg);
   13519                             {
   13520                                 ios.width(0);
   13521                                 {
   13522                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13523                                     std::string ex(str, iter.base());
   13524                                     assert(ex == "1;2E+09");
   13525                                     assert(ios.width() == 0);
   13526                                 }
   13527                                 ios.width(25);
   13528                                 left(ios);
   13529                                 {
   13530                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13531                                     std::string ex(str, iter.base());
   13532                                     assert(ex == "1;2E+09******************");
   13533                                     assert(ios.width() == 0);
   13534                                 }
   13535                                 ios.width(25);
   13536                                 right(ios);
   13537                                 {
   13538                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13539                                     std::string ex(str, iter.base());
   13540                                     assert(ex == "******************1;2E+09");
   13541                                     assert(ios.width() == 0);
   13542                                 }
   13543                                 ios.width(25);
   13544                                 internal(ios);
   13545                                 {
   13546                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13547                                     std::string ex(str, iter.base());
   13548                                     assert(ex == "******************1;2E+09");
   13549                                     assert(ios.width() == 0);
   13550                                 }
   13551                             }
   13552                         }
   13553                     }
   13554                     showpos(ios);
   13555                     {
   13556                         noshowpoint(ios);
   13557                         {
   13558                             ios.imbue(lc);
   13559                             {
   13560                                 ios.width(0);
   13561                                 {
   13562                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13563                                     std::string ex(str, iter.base());
   13564                                     assert(ex == "+1.2E+09");
   13565                                     assert(ios.width() == 0);
   13566                                 }
   13567                                 ios.width(25);
   13568                                 left(ios);
   13569                                 {
   13570                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13571                                     std::string ex(str, iter.base());
   13572                                     assert(ex == "+1.2E+09*****************");
   13573                                     assert(ios.width() == 0);
   13574                                 }
   13575                                 ios.width(25);
   13576                                 right(ios);
   13577                                 {
   13578                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13579                                     std::string ex(str, iter.base());
   13580                                     assert(ex == "*****************+1.2E+09");
   13581                                     assert(ios.width() == 0);
   13582                                 }
   13583                                 ios.width(25);
   13584                                 internal(ios);
   13585                                 {
   13586                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13587                                     std::string ex(str, iter.base());
   13588                                     assert(ex == "+*****************1.2E+09");
   13589                                     assert(ios.width() == 0);
   13590                                 }
   13591                             }
   13592                             ios.imbue(lg);
   13593                             {
   13594                                 ios.width(0);
   13595                                 {
   13596                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13597                                     std::string ex(str, iter.base());
   13598                                     assert(ex == "+1;2E+09");
   13599                                     assert(ios.width() == 0);
   13600                                 }
   13601                                 ios.width(25);
   13602                                 left(ios);
   13603                                 {
   13604                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13605                                     std::string ex(str, iter.base());
   13606                                     assert(ex == "+1;2E+09*****************");
   13607                                     assert(ios.width() == 0);
   13608                                 }
   13609                                 ios.width(25);
   13610                                 right(ios);
   13611                                 {
   13612                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13613                                     std::string ex(str, iter.base());
   13614                                     assert(ex == "*****************+1;2E+09");
   13615                                     assert(ios.width() == 0);
   13616                                 }
   13617                                 ios.width(25);
   13618                                 internal(ios);
   13619                                 {
   13620                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13621                                     std::string ex(str, iter.base());
   13622                                     assert(ex == "+*****************1;2E+09");
   13623                                     assert(ios.width() == 0);
   13624                                 }
   13625                             }
   13626                         }
   13627                         showpoint(ios);
   13628                         {
   13629                             ios.imbue(lc);
   13630                             {
   13631                                 ios.width(0);
   13632                                 {
   13633                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13634                                     std::string ex(str, iter.base());
   13635                                     assert(ex == "+1.2E+09");
   13636                                     assert(ios.width() == 0);
   13637                                 }
   13638                                 ios.width(25);
   13639                                 left(ios);
   13640                                 {
   13641                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13642                                     std::string ex(str, iter.base());
   13643                                     assert(ex == "+1.2E+09*****************");
   13644                                     assert(ios.width() == 0);
   13645                                 }
   13646                                 ios.width(25);
   13647                                 right(ios);
   13648                                 {
   13649                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13650                                     std::string ex(str, iter.base());
   13651                                     assert(ex == "*****************+1.2E+09");
   13652                                     assert(ios.width() == 0);
   13653                                 }
   13654                                 ios.width(25);
   13655                                 internal(ios);
   13656                                 {
   13657                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13658                                     std::string ex(str, iter.base());
   13659                                     assert(ex == "+*****************1.2E+09");
   13660                                     assert(ios.width() == 0);
   13661                                 }
   13662                             }
   13663                             ios.imbue(lg);
   13664                             {
   13665                                 ios.width(0);
   13666                                 {
   13667                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13668                                     std::string ex(str, iter.base());
   13669                                     assert(ex == "+1;2E+09");
   13670                                     assert(ios.width() == 0);
   13671                                 }
   13672                                 ios.width(25);
   13673                                 left(ios);
   13674                                 {
   13675                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13676                                     std::string ex(str, iter.base());
   13677                                     assert(ex == "+1;2E+09*****************");
   13678                                     assert(ios.width() == 0);
   13679                                 }
   13680                                 ios.width(25);
   13681                                 right(ios);
   13682                                 {
   13683                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13684                                     std::string ex(str, iter.base());
   13685                                     assert(ex == "*****************+1;2E+09");
   13686                                     assert(ios.width() == 0);
   13687                                 }
   13688                                 ios.width(25);
   13689                                 internal(ios);
   13690                                 {
   13691                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13692                                     std::string ex(str, iter.base());
   13693                                     assert(ex == "+*****************1;2E+09");
   13694                                     assert(ios.width() == 0);
   13695                                 }
   13696                             }
   13697                         }
   13698                     }
   13699                 }
   13700             }
   13701             ios.precision(6);
   13702             {
   13703             }
   13704             ios.precision(16);
   13705             {
   13706             }
   13707             ios.precision(60);
   13708             {
   13709                 nouppercase(ios);
   13710                 {
   13711                     noshowpos(ios);
   13712                     {
   13713                         noshowpoint(ios);
   13714                         {
   13715                             ios.imbue(lc);
   13716                             {
   13717                                 ios.width(0);
   13718                                 {
   13719                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13720                                     std::string ex(str, iter.base());
   13721                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
   13722                                     assert(ios.width() == 0);
   13723                                 }
   13724                                 ios.width(25);
   13725                                 left(ios);
   13726                                 {
   13727                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13728                                     std::string ex(str, iter.base());
   13729                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
   13730                                     assert(ios.width() == 0);
   13731                                 }
   13732                                 ios.width(25);
   13733                                 right(ios);
   13734                                 {
   13735                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13736                                     std::string ex(str, iter.base());
   13737                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
   13738                                     assert(ios.width() == 0);
   13739                                 }
   13740                                 ios.width(25);
   13741                                 internal(ios);
   13742                                 {
   13743                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13744                                     std::string ex(str, iter.base());
   13745                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
   13746                                     assert(ios.width() == 0);
   13747                                 }
   13748                             }
   13749                             ios.imbue(lg);
   13750                             {
   13751                                 ios.width(0);
   13752                                 {
   13753                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13754                                     std::string ex(str, iter.base());
   13755                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
   13756                                     assert(ios.width() == 0);
   13757                                 }
   13758                                 ios.width(25);
   13759                                 left(ios);
   13760                                 {
   13761                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13762                                     std::string ex(str, iter.base());
   13763                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
   13764                                     assert(ios.width() == 0);
   13765                                 }
   13766                                 ios.width(25);
   13767                                 right(ios);
   13768                                 {
   13769                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13770                                     std::string ex(str, iter.base());
   13771                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
   13772                                     assert(ios.width() == 0);
   13773                                 }
   13774                                 ios.width(25);
   13775                                 internal(ios);
   13776                                 {
   13777                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13778                                     std::string ex(str, iter.base());
   13779                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
   13780                                     assert(ios.width() == 0);
   13781                                 }
   13782                             }
   13783                         }
   13784                         showpoint(ios);
   13785                         {
   13786                             ios.imbue(lc);
   13787                             {
   13788                                 ios.width(0);
   13789                                 {
   13790                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13791                                     std::string ex(str, iter.base());
   13792                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
   13793                                     assert(ios.width() == 0);
   13794                                 }
   13795                                 ios.width(25);
   13796                                 left(ios);
   13797                                 {
   13798                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13799                                     std::string ex(str, iter.base());
   13800                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
   13801                                     assert(ios.width() == 0);
   13802                                 }
   13803                                 ios.width(25);
   13804                                 right(ios);
   13805                                 {
   13806                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13807                                     std::string ex(str, iter.base());
   13808                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
   13809                                     assert(ios.width() == 0);
   13810                                 }
   13811                                 ios.width(25);
   13812                                 internal(ios);
   13813                                 {
   13814                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13815                                     std::string ex(str, iter.base());
   13816                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
   13817                                     assert(ios.width() == 0);
   13818                                 }
   13819                             }
   13820                             ios.imbue(lg);
   13821                             {
   13822                                 ios.width(0);
   13823                                 {
   13824                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13825                                     std::string ex(str, iter.base());
   13826                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
   13827                                     assert(ios.width() == 0);
   13828                                 }
   13829                                 ios.width(25);
   13830                                 left(ios);
   13831                                 {
   13832                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13833                                     std::string ex(str, iter.base());
   13834                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
   13835                                     assert(ios.width() == 0);
   13836                                 }
   13837                                 ios.width(25);
   13838                                 right(ios);
   13839                                 {
   13840                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13841                                     std::string ex(str, iter.base());
   13842                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
   13843                                     assert(ios.width() == 0);
   13844                                 }
   13845                                 ios.width(25);
   13846                                 internal(ios);
   13847                                 {
   13848                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13849                                     std::string ex(str, iter.base());
   13850                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
   13851                                     assert(ios.width() == 0);
   13852                                 }
   13853                             }
   13854                         }
   13855                     }
   13856                     showpos(ios);
   13857                     {
   13858                         noshowpoint(ios);
   13859                         {
   13860                             ios.imbue(lc);
   13861                             {
   13862                                 ios.width(0);
   13863                                 {
   13864                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13865                                     std::string ex(str, iter.base());
   13866                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
   13867                                     assert(ios.width() == 0);
   13868                                 }
   13869                                 ios.width(25);
   13870                                 left(ios);
   13871                                 {
   13872                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13873                                     std::string ex(str, iter.base());
   13874                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
   13875                                     assert(ios.width() == 0);
   13876                                 }
   13877                                 ios.width(25);
   13878                                 right(ios);
   13879                                 {
   13880                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13881                                     std::string ex(str, iter.base());
   13882                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
   13883                                     assert(ios.width() == 0);
   13884                                 }
   13885                                 ios.width(25);
   13886                                 internal(ios);
   13887                                 {
   13888                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13889                                     std::string ex(str, iter.base());
   13890                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
   13891                                     assert(ios.width() == 0);
   13892                                 }
   13893                             }
   13894                             ios.imbue(lg);
   13895                             {
   13896                                 ios.width(0);
   13897                                 {
   13898                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13899                                     std::string ex(str, iter.base());
   13900                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
   13901                                     assert(ios.width() == 0);
   13902                                 }
   13903                                 ios.width(25);
   13904                                 left(ios);
   13905                                 {
   13906                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13907                                     std::string ex(str, iter.base());
   13908                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
   13909                                     assert(ios.width() == 0);
   13910                                 }
   13911                                 ios.width(25);
   13912                                 right(ios);
   13913                                 {
   13914                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13915                                     std::string ex(str, iter.base());
   13916                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
   13917                                     assert(ios.width() == 0);
   13918                                 }
   13919                                 ios.width(25);
   13920                                 internal(ios);
   13921                                 {
   13922                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13923                                     std::string ex(str, iter.base());
   13924                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
   13925                                     assert(ios.width() == 0);
   13926                                 }
   13927                             }
   13928                         }
   13929                         showpoint(ios);
   13930                         {
   13931                             ios.imbue(lc);
   13932                             {
   13933                                 ios.width(0);
   13934                                 {
   13935                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13936                                     std::string ex(str, iter.base());
   13937                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
   13938                                     assert(ios.width() == 0);
   13939                                 }
   13940                                 ios.width(25);
   13941                                 left(ios);
   13942                                 {
   13943                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13944                                     std::string ex(str, iter.base());
   13945                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
   13946                                     assert(ios.width() == 0);
   13947                                 }
   13948                                 ios.width(25);
   13949                                 right(ios);
   13950                                 {
   13951                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13952                                     std::string ex(str, iter.base());
   13953                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
   13954                                     assert(ios.width() == 0);
   13955                                 }
   13956                                 ios.width(25);
   13957                                 internal(ios);
   13958                                 {
   13959                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13960                                     std::string ex(str, iter.base());
   13961                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
   13962                                     assert(ios.width() == 0);
   13963                                 }
   13964                             }
   13965                             ios.imbue(lg);
   13966                             {
   13967                                 ios.width(0);
   13968                                 {
   13969                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13970                                     std::string ex(str, iter.base());
   13971                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
   13972                                     assert(ios.width() == 0);
   13973                                 }
   13974                                 ios.width(25);
   13975                                 left(ios);
   13976                                 {
   13977                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13978                                     std::string ex(str, iter.base());
   13979                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
   13980                                     assert(ios.width() == 0);
   13981                                 }
   13982                                 ios.width(25);
   13983                                 right(ios);
   13984                                 {
   13985                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13986                                     std::string ex(str, iter.base());
   13987                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
   13988                                     assert(ios.width() == 0);
   13989                                 }
   13990                                 ios.width(25);
   13991                                 internal(ios);
   13992                                 {
   13993                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   13994                                     std::string ex(str, iter.base());
   13995                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
   13996                                     assert(ios.width() == 0);
   13997                                 }
   13998                             }
   13999                         }
   14000                     }
   14001                 }
   14002                 uppercase(ios);
   14003                 {
   14004                     noshowpos(ios);
   14005                     {
   14006                         noshowpoint(ios);
   14007                         {
   14008                             ios.imbue(lc);
   14009                             {
   14010                                 ios.width(0);
   14011                                 {
   14012                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14013                                     std::string ex(str, iter.base());
   14014                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
   14015                                     assert(ios.width() == 0);
   14016                                 }
   14017                                 ios.width(25);
   14018                                 left(ios);
   14019                                 {
   14020                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14021                                     std::string ex(str, iter.base());
   14022                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
   14023                                     assert(ios.width() == 0);
   14024                                 }
   14025                                 ios.width(25);
   14026                                 right(ios);
   14027                                 {
   14028                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14029                                     std::string ex(str, iter.base());
   14030                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
   14031                                     assert(ios.width() == 0);
   14032                                 }
   14033                                 ios.width(25);
   14034                                 internal(ios);
   14035                                 {
   14036                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14037                                     std::string ex(str, iter.base());
   14038                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
   14039                                     assert(ios.width() == 0);
   14040                                 }
   14041                             }
   14042                             ios.imbue(lg);
   14043                             {
   14044                                 ios.width(0);
   14045                                 {
   14046                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14047                                     std::string ex(str, iter.base());
   14048                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
   14049                                     assert(ios.width() == 0);
   14050                                 }
   14051                                 ios.width(25);
   14052                                 left(ios);
   14053                                 {
   14054                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14055                                     std::string ex(str, iter.base());
   14056                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
   14057                                     assert(ios.width() == 0);
   14058                                 }
   14059                                 ios.width(25);
   14060                                 right(ios);
   14061                                 {
   14062                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14063                                     std::string ex(str, iter.base());
   14064                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
   14065                                     assert(ios.width() == 0);
   14066                                 }
   14067                                 ios.width(25);
   14068                                 internal(ios);
   14069                                 {
   14070                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14071                                     std::string ex(str, iter.base());
   14072                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
   14073                                     assert(ios.width() == 0);
   14074                                 }
   14075                             }
   14076                         }
   14077                         showpoint(ios);
   14078                         {
   14079                             ios.imbue(lc);
   14080                             {
   14081                                 ios.width(0);
   14082                                 {
   14083                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14084                                     std::string ex(str, iter.base());
   14085                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
   14086                                     assert(ios.width() == 0);
   14087                                 }
   14088                                 ios.width(25);
   14089                                 left(ios);
   14090                                 {
   14091                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14092                                     std::string ex(str, iter.base());
   14093                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
   14094                                     assert(ios.width() == 0);
   14095                                 }
   14096                                 ios.width(25);
   14097                                 right(ios);
   14098                                 {
   14099                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14100                                     std::string ex(str, iter.base());
   14101                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
   14102                                     assert(ios.width() == 0);
   14103                                 }
   14104                                 ios.width(25);
   14105                                 internal(ios);
   14106                                 {
   14107                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14108                                     std::string ex(str, iter.base());
   14109                                     assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
   14110                                     assert(ios.width() == 0);
   14111                                 }
   14112                             }
   14113                             ios.imbue(lg);
   14114                             {
   14115                                 ios.width(0);
   14116                                 {
   14117                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14118                                     std::string ex(str, iter.base());
   14119                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
   14120                                     assert(ios.width() == 0);
   14121                                 }
   14122                                 ios.width(25);
   14123                                 left(ios);
   14124                                 {
   14125                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14126                                     std::string ex(str, iter.base());
   14127                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
   14128                                     assert(ios.width() == 0);
   14129                                 }
   14130                                 ios.width(25);
   14131                                 right(ios);
   14132                                 {
   14133                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14134                                     std::string ex(str, iter.base());
   14135                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
   14136                                     assert(ios.width() == 0);
   14137                                 }
   14138                                 ios.width(25);
   14139                                 internal(ios);
   14140                                 {
   14141                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14142                                     std::string ex(str, iter.base());
   14143                                     assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
   14144                                     assert(ios.width() == 0);
   14145                                 }
   14146                             }
   14147                         }
   14148                     }
   14149                     showpos(ios);
   14150                     {
   14151                         noshowpoint(ios);
   14152                         {
   14153                             ios.imbue(lc);
   14154                             {
   14155                                 ios.width(0);
   14156                                 {
   14157                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14158                                     std::string ex(str, iter.base());
   14159                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
   14160                                     assert(ios.width() == 0);
   14161                                 }
   14162                                 ios.width(25);
   14163                                 left(ios);
   14164                                 {
   14165                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14166                                     std::string ex(str, iter.base());
   14167                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
   14168                                     assert(ios.width() == 0);
   14169                                 }
   14170                                 ios.width(25);
   14171                                 right(ios);
   14172                                 {
   14173                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14174                                     std::string ex(str, iter.base());
   14175                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
   14176                                     assert(ios.width() == 0);
   14177                                 }
   14178                                 ios.width(25);
   14179                                 internal(ios);
   14180                                 {
   14181                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14182                                     std::string ex(str, iter.base());
   14183                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
   14184                                     assert(ios.width() == 0);
   14185                                 }
   14186                             }
   14187                             ios.imbue(lg);
   14188                             {
   14189                                 ios.width(0);
   14190                                 {
   14191                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14192                                     std::string ex(str, iter.base());
   14193                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
   14194                                     assert(ios.width() == 0);
   14195                                 }
   14196                                 ios.width(25);
   14197                                 left(ios);
   14198                                 {
   14199                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14200                                     std::string ex(str, iter.base());
   14201                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
   14202                                     assert(ios.width() == 0);
   14203                                 }
   14204                                 ios.width(25);
   14205                                 right(ios);
   14206                                 {
   14207                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14208                                     std::string ex(str, iter.base());
   14209                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
   14210                                     assert(ios.width() == 0);
   14211                                 }
   14212                                 ios.width(25);
   14213                                 internal(ios);
   14214                                 {
   14215                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14216                                     std::string ex(str, iter.base());
   14217                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
   14218                                     assert(ios.width() == 0);
   14219                                 }
   14220                             }
   14221                         }
   14222                         showpoint(ios);
   14223                         {
   14224                             ios.imbue(lc);
   14225                             {
   14226                                 ios.width(0);
   14227                                 {
   14228                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14229                                     std::string ex(str, iter.base());
   14230                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
   14231                                     assert(ios.width() == 0);
   14232                                 }
   14233                                 ios.width(25);
   14234                                 left(ios);
   14235                                 {
   14236                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14237                                     std::string ex(str, iter.base());
   14238                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
   14239                                     assert(ios.width() == 0);
   14240                                 }
   14241                                 ios.width(25);
   14242                                 right(ios);
   14243                                 {
   14244                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14245                                     std::string ex(str, iter.base());
   14246                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
   14247                                     assert(ios.width() == 0);
   14248                                 }
   14249                                 ios.width(25);
   14250                                 internal(ios);
   14251                                 {
   14252                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14253                                     std::string ex(str, iter.base());
   14254                                     assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
   14255                                     assert(ios.width() == 0);
   14256                                 }
   14257                             }
   14258                             ios.imbue(lg);
   14259                             {
   14260                                 ios.width(0);
   14261                                 {
   14262                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14263                                     std::string ex(str, iter.base());
   14264                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
   14265                                     assert(ios.width() == 0);
   14266                                 }
   14267                                 ios.width(25);
   14268                                 left(ios);
   14269                                 {
   14270                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14271                                     std::string ex(str, iter.base());
   14272                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
   14273                                     assert(ios.width() == 0);
   14274                                 }
   14275                                 ios.width(25);
   14276                                 right(ios);
   14277                                 {
   14278                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14279                                     std::string ex(str, iter.base());
   14280                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
   14281                                     assert(ios.width() == 0);
   14282                                 }
   14283                                 ios.width(25);
   14284                                 internal(ios);
   14285                                 {
   14286                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14287                                     std::string ex(str, iter.base());
   14288                                     assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
   14289                                     assert(ios.width() == 0);
   14290                                 }
   14291                             }
   14292                         }
   14293                     }
   14294                 }
   14295             }
   14296         }
   14297     }
   14298 }
   14299 
   14300 void test7()
   14301 {
   14302     char str[200];
   14303     output_iterator<char*> iter;
   14304     std::locale lc = std::locale::classic();
   14305     std::locale lg(lc, new my_numpunct);
   14306     const my_facet f(1);
   14307     {
   14308         double v = -0.;
   14309         std::ios ios(0);
   14310         hexfloat(ios);
   14311         // %a
   14312         {
   14313             ios.precision(0);
   14314             {
   14315                 nouppercase(ios);
   14316                 {
   14317                     noshowpos(ios);
   14318                     {
   14319                         noshowpoint(ios);
   14320                         {
   14321                             ios.imbue(lc);
   14322                             {
   14323                                 ios.width(0);
   14324                                 {
   14325                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14326                                     std::string ex(str, iter.base());
   14327                                     assert(ex == "-0x0p+0");
   14328                                     assert(ios.width() == 0);
   14329                                 }
   14330                                 ios.width(25);
   14331                                 left(ios);
   14332                                 {
   14333                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14334                                     std::string ex(str, iter.base());
   14335                                     assert(ex == "-0x0p+0******************");
   14336                                     assert(ios.width() == 0);
   14337                                 }
   14338                                 ios.width(25);
   14339                                 right(ios);
   14340                                 {
   14341                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14342                                     std::string ex(str, iter.base());
   14343                                     assert(ex == "******************-0x0p+0");
   14344                                     assert(ios.width() == 0);
   14345                                 }
   14346                                 ios.width(25);
   14347                                 internal(ios);
   14348                                 {
   14349                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14350                                     std::string ex(str, iter.base());
   14351                                     assert(ex == "-******************0x0p+0");
   14352                                     assert(ios.width() == 0);
   14353                                 }
   14354                             }
   14355                             ios.imbue(lg);
   14356                             {
   14357                                 ios.width(0);
   14358                                 {
   14359                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14360                                     std::string ex(str, iter.base());
   14361                                     assert(ex == "-0x0p+0");
   14362                                     assert(ios.width() == 0);
   14363                                 }
   14364                                 ios.width(25);
   14365                                 left(ios);
   14366                                 {
   14367                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14368                                     std::string ex(str, iter.base());
   14369                                     assert(ex == "-0x0p+0******************");
   14370                                     assert(ios.width() == 0);
   14371                                 }
   14372                                 ios.width(25);
   14373                                 right(ios);
   14374                                 {
   14375                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14376                                     std::string ex(str, iter.base());
   14377                                     assert(ex == "******************-0x0p+0");
   14378                                     assert(ios.width() == 0);
   14379                                 }
   14380                                 ios.width(25);
   14381                                 internal(ios);
   14382                                 {
   14383                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14384                                     std::string ex(str, iter.base());
   14385                                     assert(ex == "-******************0x0p+0");
   14386                                     assert(ios.width() == 0);
   14387                                 }
   14388                             }
   14389                         }
   14390                         showpoint(ios);
   14391                         {
   14392                             ios.imbue(lc);
   14393                             {
   14394                                 ios.width(0);
   14395                                 {
   14396                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14397                                     std::string ex(str, iter.base());
   14398                                     assert(ex == "-0x0.p+0");
   14399                                     assert(ios.width() == 0);
   14400                                 }
   14401                                 ios.width(25);
   14402                                 left(ios);
   14403                                 {
   14404                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14405                                     std::string ex(str, iter.base());
   14406                                     assert(ex == "-0x0.p+0*****************");
   14407                                     assert(ios.width() == 0);
   14408                                 }
   14409                                 ios.width(25);
   14410                                 right(ios);
   14411                                 {
   14412                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14413                                     std::string ex(str, iter.base());
   14414                                     assert(ex == "*****************-0x0.p+0");
   14415                                     assert(ios.width() == 0);
   14416                                 }
   14417                                 ios.width(25);
   14418                                 internal(ios);
   14419                                 {
   14420                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14421                                     std::string ex(str, iter.base());
   14422                                     assert(ex == "-*****************0x0.p+0");
   14423                                     assert(ios.width() == 0);
   14424                                 }
   14425                             }
   14426                             ios.imbue(lg);
   14427                             {
   14428                                 ios.width(0);
   14429                                 {
   14430                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14431                                     std::string ex(str, iter.base());
   14432                                     assert(ex == "-0x0;p+0");
   14433                                     assert(ios.width() == 0);
   14434                                 }
   14435                                 ios.width(25);
   14436                                 left(ios);
   14437                                 {
   14438                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14439                                     std::string ex(str, iter.base());
   14440                                     assert(ex == "-0x0;p+0*****************");
   14441                                     assert(ios.width() == 0);
   14442                                 }
   14443                                 ios.width(25);
   14444                                 right(ios);
   14445                                 {
   14446                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14447                                     std::string ex(str, iter.base());
   14448                                     assert(ex == "*****************-0x0;p+0");
   14449                                     assert(ios.width() == 0);
   14450                                 }
   14451                                 ios.width(25);
   14452                                 internal(ios);
   14453                                 {
   14454                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14455                                     std::string ex(str, iter.base());
   14456                                     assert(ex == "-*****************0x0;p+0");
   14457                                     assert(ios.width() == 0);
   14458                                 }
   14459                             }
   14460                         }
   14461                     }
   14462                     showpos(ios);
   14463                     {
   14464                         noshowpoint(ios);
   14465                         {
   14466                             ios.imbue(lc);
   14467                             {
   14468                                 ios.width(0);
   14469                                 {
   14470                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14471                                     std::string ex(str, iter.base());
   14472                                     assert(ex == "-0x0p+0");
   14473                                     assert(ios.width() == 0);
   14474                                 }
   14475                                 ios.width(25);
   14476                                 left(ios);
   14477                                 {
   14478                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14479                                     std::string ex(str, iter.base());
   14480                                     assert(ex == "-0x0p+0******************");
   14481                                     assert(ios.width() == 0);
   14482                                 }
   14483                                 ios.width(25);
   14484                                 right(ios);
   14485                                 {
   14486                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14487                                     std::string ex(str, iter.base());
   14488                                     assert(ex == "******************-0x0p+0");
   14489                                     assert(ios.width() == 0);
   14490                                 }
   14491                                 ios.width(25);
   14492                                 internal(ios);
   14493                                 {
   14494                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14495                                     std::string ex(str, iter.base());
   14496                                     assert(ex == "-******************0x0p+0");
   14497                                     assert(ios.width() == 0);
   14498                                 }
   14499                             }
   14500                             ios.imbue(lg);
   14501                             {
   14502                                 ios.width(0);
   14503                                 {
   14504                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14505                                     std::string ex(str, iter.base());
   14506                                     assert(ex == "-0x0p+0");
   14507                                     assert(ios.width() == 0);
   14508                                 }
   14509                                 ios.width(25);
   14510                                 left(ios);
   14511                                 {
   14512                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14513                                     std::string ex(str, iter.base());
   14514                                     assert(ex == "-0x0p+0******************");
   14515                                     assert(ios.width() == 0);
   14516                                 }
   14517                                 ios.width(25);
   14518                                 right(ios);
   14519                                 {
   14520                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14521                                     std::string ex(str, iter.base());
   14522                                     assert(ex == "******************-0x0p+0");
   14523                                     assert(ios.width() == 0);
   14524                                 }
   14525                                 ios.width(25);
   14526                                 internal(ios);
   14527                                 {
   14528                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14529                                     std::string ex(str, iter.base());
   14530                                     assert(ex == "-******************0x0p+0");
   14531                                     assert(ios.width() == 0);
   14532                                 }
   14533                             }
   14534                         }
   14535                         showpoint(ios);
   14536                         {
   14537                             ios.imbue(lc);
   14538                             {
   14539                                 ios.width(0);
   14540                                 {
   14541                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14542                                     std::string ex(str, iter.base());
   14543                                     assert(ex == "-0x0.p+0");
   14544                                     assert(ios.width() == 0);
   14545                                 }
   14546                                 ios.width(25);
   14547                                 left(ios);
   14548                                 {
   14549                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14550                                     std::string ex(str, iter.base());
   14551                                     assert(ex == "-0x0.p+0*****************");
   14552                                     assert(ios.width() == 0);
   14553                                 }
   14554                                 ios.width(25);
   14555                                 right(ios);
   14556                                 {
   14557                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14558                                     std::string ex(str, iter.base());
   14559                                     assert(ex == "*****************-0x0.p+0");
   14560                                     assert(ios.width() == 0);
   14561                                 }
   14562                                 ios.width(25);
   14563                                 internal(ios);
   14564                                 {
   14565                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14566                                     std::string ex(str, iter.base());
   14567                                     assert(ex == "-*****************0x0.p+0");
   14568                                     assert(ios.width() == 0);
   14569                                 }
   14570                             }
   14571                             ios.imbue(lg);
   14572                             {
   14573                                 ios.width(0);
   14574                                 {
   14575                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14576                                     std::string ex(str, iter.base());
   14577                                     assert(ex == "-0x0;p+0");
   14578                                     assert(ios.width() == 0);
   14579                                 }
   14580                                 ios.width(25);
   14581                                 left(ios);
   14582                                 {
   14583                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14584                                     std::string ex(str, iter.base());
   14585                                     assert(ex == "-0x0;p+0*****************");
   14586                                     assert(ios.width() == 0);
   14587                                 }
   14588                                 ios.width(25);
   14589                                 right(ios);
   14590                                 {
   14591                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14592                                     std::string ex(str, iter.base());
   14593                                     assert(ex == "*****************-0x0;p+0");
   14594                                     assert(ios.width() == 0);
   14595                                 }
   14596                                 ios.width(25);
   14597                                 internal(ios);
   14598                                 {
   14599                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14600                                     std::string ex(str, iter.base());
   14601                                     assert(ex == "-*****************0x0;p+0");
   14602                                     assert(ios.width() == 0);
   14603                                 }
   14604                             }
   14605                         }
   14606                     }
   14607                 }
   14608                 uppercase(ios);
   14609                 {
   14610                     noshowpos(ios);
   14611                     {
   14612                         noshowpoint(ios);
   14613                         {
   14614                             ios.imbue(lc);
   14615                             {
   14616                                 ios.width(0);
   14617                                 {
   14618                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14619                                     std::string ex(str, iter.base());
   14620                                     assert(ex == "-0X0P+0");
   14621                                     assert(ios.width() == 0);
   14622                                 }
   14623                                 ios.width(25);
   14624                                 left(ios);
   14625                                 {
   14626                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14627                                     std::string ex(str, iter.base());
   14628                                     assert(ex == "-0X0P+0******************");
   14629                                     assert(ios.width() == 0);
   14630                                 }
   14631                                 ios.width(25);
   14632                                 right(ios);
   14633                                 {
   14634                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14635                                     std::string ex(str, iter.base());
   14636                                     assert(ex == "******************-0X0P+0");
   14637                                     assert(ios.width() == 0);
   14638                                 }
   14639                                 ios.width(25);
   14640                                 internal(ios);
   14641                                 {
   14642                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14643                                     std::string ex(str, iter.base());
   14644                                     assert(ex == "-******************0X0P+0");
   14645                                     assert(ios.width() == 0);
   14646                                 }
   14647                             }
   14648                             ios.imbue(lg);
   14649                             {
   14650                                 ios.width(0);
   14651                                 {
   14652                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14653                                     std::string ex(str, iter.base());
   14654                                     assert(ex == "-0X0P+0");
   14655                                     assert(ios.width() == 0);
   14656                                 }
   14657                                 ios.width(25);
   14658                                 left(ios);
   14659                                 {
   14660                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14661                                     std::string ex(str, iter.base());
   14662                                     assert(ex == "-0X0P+0******************");
   14663                                     assert(ios.width() == 0);
   14664                                 }
   14665                                 ios.width(25);
   14666                                 right(ios);
   14667                                 {
   14668                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14669                                     std::string ex(str, iter.base());
   14670                                     assert(ex == "******************-0X0P+0");
   14671                                     assert(ios.width() == 0);
   14672                                 }
   14673                                 ios.width(25);
   14674                                 internal(ios);
   14675                                 {
   14676                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14677                                     std::string ex(str, iter.base());
   14678                                     assert(ex == "-******************0X0P+0");
   14679                                     assert(ios.width() == 0);
   14680                                 }
   14681                             }
   14682                         }
   14683                         showpoint(ios);
   14684                         {
   14685                             ios.imbue(lc);
   14686                             {
   14687                                 ios.width(0);
   14688                                 {
   14689                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14690                                     std::string ex(str, iter.base());
   14691                                     assert(ex == "-0X0.P+0");
   14692                                     assert(ios.width() == 0);
   14693                                 }
   14694                                 ios.width(25);
   14695                                 left(ios);
   14696                                 {
   14697                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14698                                     std::string ex(str, iter.base());
   14699                                     assert(ex == "-0X0.P+0*****************");
   14700                                     assert(ios.width() == 0);
   14701                                 }
   14702                                 ios.width(25);
   14703                                 right(ios);
   14704                                 {
   14705                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14706                                     std::string ex(str, iter.base());
   14707                                     assert(ex == "*****************-0X0.P+0");
   14708                                     assert(ios.width() == 0);
   14709                                 }
   14710                                 ios.width(25);
   14711                                 internal(ios);
   14712                                 {
   14713                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14714                                     std::string ex(str, iter.base());
   14715                                     assert(ex == "-*****************0X0.P+0");
   14716                                     assert(ios.width() == 0);
   14717                                 }
   14718                             }
   14719                             ios.imbue(lg);
   14720                             {
   14721                                 ios.width(0);
   14722                                 {
   14723                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14724                                     std::string ex(str, iter.base());
   14725                                     assert(ex == "-0X0;P+0");
   14726                                     assert(ios.width() == 0);
   14727                                 }
   14728                                 ios.width(25);
   14729                                 left(ios);
   14730                                 {
   14731                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14732                                     std::string ex(str, iter.base());
   14733                                     assert(ex == "-0X0;P+0*****************");
   14734                                     assert(ios.width() == 0);
   14735                                 }
   14736                                 ios.width(25);
   14737                                 right(ios);
   14738                                 {
   14739                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14740                                     std::string ex(str, iter.base());
   14741                                     assert(ex == "*****************-0X0;P+0");
   14742                                     assert(ios.width() == 0);
   14743                                 }
   14744                                 ios.width(25);
   14745                                 internal(ios);
   14746                                 {
   14747                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14748                                     std::string ex(str, iter.base());
   14749                                     assert(ex == "-*****************0X0;P+0");
   14750                                     assert(ios.width() == 0);
   14751                                 }
   14752                             }
   14753                         }
   14754                     }
   14755                     showpos(ios);
   14756                     {
   14757                         noshowpoint(ios);
   14758                         {
   14759                             ios.imbue(lc);
   14760                             {
   14761                                 ios.width(0);
   14762                                 {
   14763                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14764                                     std::string ex(str, iter.base());
   14765                                     assert(ex == "-0X0P+0");
   14766                                     assert(ios.width() == 0);
   14767                                 }
   14768                                 ios.width(25);
   14769                                 left(ios);
   14770                                 {
   14771                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14772                                     std::string ex(str, iter.base());
   14773                                     assert(ex == "-0X0P+0******************");
   14774                                     assert(ios.width() == 0);
   14775                                 }
   14776                                 ios.width(25);
   14777                                 right(ios);
   14778                                 {
   14779                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14780                                     std::string ex(str, iter.base());
   14781                                     assert(ex == "******************-0X0P+0");
   14782                                     assert(ios.width() == 0);
   14783                                 }
   14784                                 ios.width(25);
   14785                                 internal(ios);
   14786                                 {
   14787                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14788                                     std::string ex(str, iter.base());
   14789                                     assert(ex == "-******************0X0P+0");
   14790                                     assert(ios.width() == 0);
   14791                                 }
   14792                             }
   14793                             ios.imbue(lg);
   14794                             {
   14795                                 ios.width(0);
   14796                                 {
   14797                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14798                                     std::string ex(str, iter.base());
   14799                                     assert(ex == "-0X0P+0");
   14800                                     assert(ios.width() == 0);
   14801                                 }
   14802                                 ios.width(25);
   14803                                 left(ios);
   14804                                 {
   14805                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14806                                     std::string ex(str, iter.base());
   14807                                     assert(ex == "-0X0P+0******************");
   14808                                     assert(ios.width() == 0);
   14809                                 }
   14810                                 ios.width(25);
   14811                                 right(ios);
   14812                                 {
   14813                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14814                                     std::string ex(str, iter.base());
   14815                                     assert(ex == "******************-0X0P+0");
   14816                                     assert(ios.width() == 0);
   14817                                 }
   14818                                 ios.width(25);
   14819                                 internal(ios);
   14820                                 {
   14821                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14822                                     std::string ex(str, iter.base());
   14823                                     assert(ex == "-******************0X0P+0");
   14824                                     assert(ios.width() == 0);
   14825                                 }
   14826                             }
   14827                         }
   14828                         showpoint(ios);
   14829                         {
   14830                             ios.imbue(lc);
   14831                             {
   14832                                 ios.width(0);
   14833                                 {
   14834                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14835                                     std::string ex(str, iter.base());
   14836                                     assert(ex == "-0X0.P+0");
   14837                                     assert(ios.width() == 0);
   14838                                 }
   14839                                 ios.width(25);
   14840                                 left(ios);
   14841                                 {
   14842                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14843                                     std::string ex(str, iter.base());
   14844                                     assert(ex == "-0X0.P+0*****************");
   14845                                     assert(ios.width() == 0);
   14846                                 }
   14847                                 ios.width(25);
   14848                                 right(ios);
   14849                                 {
   14850                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14851                                     std::string ex(str, iter.base());
   14852                                     assert(ex == "*****************-0X0.P+0");
   14853                                     assert(ios.width() == 0);
   14854                                 }
   14855                                 ios.width(25);
   14856                                 internal(ios);
   14857                                 {
   14858                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14859                                     std::string ex(str, iter.base());
   14860                                     assert(ex == "-*****************0X0.P+0");
   14861                                     assert(ios.width() == 0);
   14862                                 }
   14863                             }
   14864                             ios.imbue(lg);
   14865                             {
   14866                                 ios.width(0);
   14867                                 {
   14868                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14869                                     std::string ex(str, iter.base());
   14870                                     assert(ex == "-0X0;P+0");
   14871                                     assert(ios.width() == 0);
   14872                                 }
   14873                                 ios.width(25);
   14874                                 left(ios);
   14875                                 {
   14876                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14877                                     std::string ex(str, iter.base());
   14878                                     assert(ex == "-0X0;P+0*****************");
   14879                                     assert(ios.width() == 0);
   14880                                 }
   14881                                 ios.width(25);
   14882                                 right(ios);
   14883                                 {
   14884                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14885                                     std::string ex(str, iter.base());
   14886                                     assert(ex == "*****************-0X0;P+0");
   14887                                     assert(ios.width() == 0);
   14888                                 }
   14889                                 ios.width(25);
   14890                                 internal(ios);
   14891                                 {
   14892                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14893                                     std::string ex(str, iter.base());
   14894                                     assert(ex == "-*****************0X0;P+0");
   14895                                     assert(ios.width() == 0);
   14896                                 }
   14897                             }
   14898                         }
   14899                     }
   14900                 }
   14901             }
   14902             ios.precision(1);
   14903             {
   14904                 nouppercase(ios);
   14905                 {
   14906                     noshowpos(ios);
   14907                     {
   14908                         noshowpoint(ios);
   14909                         {
   14910                             ios.imbue(lc);
   14911                             {
   14912                                 ios.width(0);
   14913                                 {
   14914                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14915                                     std::string ex(str, iter.base());
   14916                                     assert(ex == "-0x0p+0");
   14917                                     assert(ios.width() == 0);
   14918                                 }
   14919                                 ios.width(25);
   14920                                 left(ios);
   14921                                 {
   14922                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14923                                     std::string ex(str, iter.base());
   14924                                     assert(ex == "-0x0p+0******************");
   14925                                     assert(ios.width() == 0);
   14926                                 }
   14927                                 ios.width(25);
   14928                                 right(ios);
   14929                                 {
   14930                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14931                                     std::string ex(str, iter.base());
   14932                                     assert(ex == "******************-0x0p+0");
   14933                                     assert(ios.width() == 0);
   14934                                 }
   14935                                 ios.width(25);
   14936                                 internal(ios);
   14937                                 {
   14938                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14939                                     std::string ex(str, iter.base());
   14940                                     assert(ex == "-******************0x0p+0");
   14941                                     assert(ios.width() == 0);
   14942                                 }
   14943                             }
   14944                             ios.imbue(lg);
   14945                             {
   14946                                 ios.width(0);
   14947                                 {
   14948                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14949                                     std::string ex(str, iter.base());
   14950                                     assert(ex == "-0x0p+0");
   14951                                     assert(ios.width() == 0);
   14952                                 }
   14953                                 ios.width(25);
   14954                                 left(ios);
   14955                                 {
   14956                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14957                                     std::string ex(str, iter.base());
   14958                                     assert(ex == "-0x0p+0******************");
   14959                                     assert(ios.width() == 0);
   14960                                 }
   14961                                 ios.width(25);
   14962                                 right(ios);
   14963                                 {
   14964                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14965                                     std::string ex(str, iter.base());
   14966                                     assert(ex == "******************-0x0p+0");
   14967                                     assert(ios.width() == 0);
   14968                                 }
   14969                                 ios.width(25);
   14970                                 internal(ios);
   14971                                 {
   14972                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14973                                     std::string ex(str, iter.base());
   14974                                     assert(ex == "-******************0x0p+0");
   14975                                     assert(ios.width() == 0);
   14976                                 }
   14977                             }
   14978                         }
   14979                         showpoint(ios);
   14980                         {
   14981                             ios.imbue(lc);
   14982                             {
   14983                                 ios.width(0);
   14984                                 {
   14985                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14986                                     std::string ex(str, iter.base());
   14987                                     assert(ex == "-0x0.p+0");
   14988                                     assert(ios.width() == 0);
   14989                                 }
   14990                                 ios.width(25);
   14991                                 left(ios);
   14992                                 {
   14993                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   14994                                     std::string ex(str, iter.base());
   14995                                     assert(ex == "-0x0.p+0*****************");
   14996                                     assert(ios.width() == 0);
   14997                                 }
   14998                                 ios.width(25);
   14999                                 right(ios);
   15000                                 {
   15001                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15002                                     std::string ex(str, iter.base());
   15003                                     assert(ex == "*****************-0x0.p+0");
   15004                                     assert(ios.width() == 0);
   15005                                 }
   15006                                 ios.width(25);
   15007                                 internal(ios);
   15008                                 {
   15009                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15010                                     std::string ex(str, iter.base());
   15011                                     assert(ex == "-*****************0x0.p+0");
   15012                                     assert(ios.width() == 0);
   15013                                 }
   15014                             }
   15015                             ios.imbue(lg);
   15016                             {
   15017                                 ios.width(0);
   15018                                 {
   15019                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15020                                     std::string ex(str, iter.base());
   15021                                     assert(ex == "-0x0;p+0");
   15022                                     assert(ios.width() == 0);
   15023                                 }
   15024                                 ios.width(25);
   15025                                 left(ios);
   15026                                 {
   15027                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15028                                     std::string ex(str, iter.base());
   15029                                     assert(ex == "-0x0;p+0*****************");
   15030                                     assert(ios.width() == 0);
   15031                                 }
   15032                                 ios.width(25);
   15033                                 right(ios);
   15034                                 {
   15035                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15036                                     std::string ex(str, iter.base());
   15037                                     assert(ex == "*****************-0x0;p+0");
   15038                                     assert(ios.width() == 0);
   15039                                 }
   15040                                 ios.width(25);
   15041                                 internal(ios);
   15042                                 {
   15043                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15044                                     std::string ex(str, iter.base());
   15045                                     assert(ex == "-*****************0x0;p+0");
   15046                                     assert(ios.width() == 0);
   15047                                 }
   15048                             }
   15049                         }
   15050                     }
   15051                     showpos(ios);
   15052                     {
   15053                         noshowpoint(ios);
   15054                         {
   15055                             ios.imbue(lc);
   15056                             {
   15057                                 ios.width(0);
   15058                                 {
   15059                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15060                                     std::string ex(str, iter.base());
   15061                                     assert(ex == "-0x0p+0");
   15062                                     assert(ios.width() == 0);
   15063                                 }
   15064                                 ios.width(25);
   15065                                 left(ios);
   15066                                 {
   15067                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15068                                     std::string ex(str, iter.base());
   15069                                     assert(ex == "-0x0p+0******************");
   15070                                     assert(ios.width() == 0);
   15071                                 }
   15072                                 ios.width(25);
   15073                                 right(ios);
   15074                                 {
   15075                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15076                                     std::string ex(str, iter.base());
   15077                                     assert(ex == "******************-0x0p+0");
   15078                                     assert(ios.width() == 0);
   15079                                 }
   15080                                 ios.width(25);
   15081                                 internal(ios);
   15082                                 {
   15083                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15084                                     std::string ex(str, iter.base());
   15085                                     assert(ex == "-******************0x0p+0");
   15086                                     assert(ios.width() == 0);
   15087                                 }
   15088                             }
   15089                             ios.imbue(lg);
   15090                             {
   15091                                 ios.width(0);
   15092                                 {
   15093                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15094                                     std::string ex(str, iter.base());
   15095                                     assert(ex == "-0x0p+0");
   15096                                     assert(ios.width() == 0);
   15097                                 }
   15098                                 ios.width(25);
   15099                                 left(ios);
   15100                                 {
   15101                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15102                                     std::string ex(str, iter.base());
   15103                                     assert(ex == "-0x0p+0******************");
   15104                                     assert(ios.width() == 0);
   15105                                 }
   15106                                 ios.width(25);
   15107                                 right(ios);
   15108                                 {
   15109                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15110                                     std::string ex(str, iter.base());
   15111                                     assert(ex == "******************-0x0p+0");
   15112                                     assert(ios.width() == 0);
   15113                                 }
   15114                                 ios.width(25);
   15115                                 internal(ios);
   15116                                 {
   15117                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15118                                     std::string ex(str, iter.base());
   15119                                     assert(ex == "-******************0x0p+0");
   15120                                     assert(ios.width() == 0);
   15121                                 }
   15122                             }
   15123                         }
   15124                         showpoint(ios);
   15125                         {
   15126                             ios.imbue(lc);
   15127                             {
   15128                                 ios.width(0);
   15129                                 {
   15130                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15131                                     std::string ex(str, iter.base());
   15132                                     assert(ex == "-0x0.p+0");
   15133                                     assert(ios.width() == 0);
   15134                                 }
   15135                                 ios.width(25);
   15136                                 left(ios);
   15137                                 {
   15138                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15139                                     std::string ex(str, iter.base());
   15140                                     assert(ex == "-0x0.p+0*****************");
   15141                                     assert(ios.width() == 0);
   15142                                 }
   15143                                 ios.width(25);
   15144                                 right(ios);
   15145                                 {
   15146                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15147                                     std::string ex(str, iter.base());
   15148                                     assert(ex == "*****************-0x0.p+0");
   15149                                     assert(ios.width() == 0);
   15150                                 }
   15151                                 ios.width(25);
   15152                                 internal(ios);
   15153                                 {
   15154                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15155                                     std::string ex(str, iter.base());
   15156                                     assert(ex == "-*****************0x0.p+0");
   15157                                     assert(ios.width() == 0);
   15158                                 }
   15159                             }
   15160                             ios.imbue(lg);
   15161                             {
   15162                                 ios.width(0);
   15163                                 {
   15164                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15165                                     std::string ex(str, iter.base());
   15166                                     assert(ex == "-0x0;p+0");
   15167                                     assert(ios.width() == 0);
   15168                                 }
   15169                                 ios.width(25);
   15170                                 left(ios);
   15171                                 {
   15172                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15173                                     std::string ex(str, iter.base());
   15174                                     assert(ex == "-0x0;p+0*****************");
   15175                                     assert(ios.width() == 0);
   15176                                 }
   15177                                 ios.width(25);
   15178                                 right(ios);
   15179                                 {
   15180                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15181                                     std::string ex(str, iter.base());
   15182                                     assert(ex == "*****************-0x0;p+0");
   15183                                     assert(ios.width() == 0);
   15184                                 }
   15185                                 ios.width(25);
   15186                                 internal(ios);
   15187                                 {
   15188                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15189                                     std::string ex(str, iter.base());
   15190                                     assert(ex == "-*****************0x0;p+0");
   15191                                     assert(ios.width() == 0);
   15192                                 }
   15193                             }
   15194                         }
   15195                     }
   15196                 }
   15197                 uppercase(ios);
   15198                 {
   15199                     noshowpos(ios);
   15200                     {
   15201                         noshowpoint(ios);
   15202                         {
   15203                             ios.imbue(lc);
   15204                             {
   15205                                 ios.width(0);
   15206                                 {
   15207                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15208                                     std::string ex(str, iter.base());
   15209                                     assert(ex == "-0X0P+0");
   15210                                     assert(ios.width() == 0);
   15211                                 }
   15212                                 ios.width(25);
   15213                                 left(ios);
   15214                                 {
   15215                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15216                                     std::string ex(str, iter.base());
   15217                                     assert(ex == "-0X0P+0******************");
   15218                                     assert(ios.width() == 0);
   15219                                 }
   15220                                 ios.width(25);
   15221                                 right(ios);
   15222                                 {
   15223                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15224                                     std::string ex(str, iter.base());
   15225                                     assert(ex == "******************-0X0P+0");
   15226                                     assert(ios.width() == 0);
   15227                                 }
   15228                                 ios.width(25);
   15229                                 internal(ios);
   15230                                 {
   15231                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15232                                     std::string ex(str, iter.base());
   15233                                     assert(ex == "-******************0X0P+0");
   15234                                     assert(ios.width() == 0);
   15235                                 }
   15236                             }
   15237                             ios.imbue(lg);
   15238                             {
   15239                                 ios.width(0);
   15240                                 {
   15241                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15242                                     std::string ex(str, iter.base());
   15243                                     assert(ex == "-0X0P+0");
   15244                                     assert(ios.width() == 0);
   15245                                 }
   15246                                 ios.width(25);
   15247                                 left(ios);
   15248                                 {
   15249                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15250                                     std::string ex(str, iter.base());
   15251                                     assert(ex == "-0X0P+0******************");
   15252                                     assert(ios.width() == 0);
   15253                                 }
   15254                                 ios.width(25);
   15255                                 right(ios);
   15256                                 {
   15257                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15258                                     std::string ex(str, iter.base());
   15259                                     assert(ex == "******************-0X0P+0");
   15260                                     assert(ios.width() == 0);
   15261                                 }
   15262                                 ios.width(25);
   15263                                 internal(ios);
   15264                                 {
   15265                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15266                                     std::string ex(str, iter.base());
   15267                                     assert(ex == "-******************0X0P+0");
   15268                                     assert(ios.width() == 0);
   15269                                 }
   15270                             }
   15271                         }
   15272                         showpoint(ios);
   15273                         {
   15274                             ios.imbue(lc);
   15275                             {
   15276                                 ios.width(0);
   15277                                 {
   15278                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15279                                     std::string ex(str, iter.base());
   15280                                     assert(ex == "-0X0.P+0");
   15281                                     assert(ios.width() == 0);
   15282                                 }
   15283                                 ios.width(25);
   15284                                 left(ios);
   15285                                 {
   15286                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15287                                     std::string ex(str, iter.base());
   15288                                     assert(ex == "-0X0.P+0*****************");
   15289                                     assert(ios.width() == 0);
   15290                                 }
   15291                                 ios.width(25);
   15292                                 right(ios);
   15293                                 {
   15294                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15295                                     std::string ex(str, iter.base());
   15296                                     assert(ex == "*****************-0X0.P+0");
   15297                                     assert(ios.width() == 0);
   15298                                 }
   15299                                 ios.width(25);
   15300                                 internal(ios);
   15301                                 {
   15302                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15303                                     std::string ex(str, iter.base());
   15304                                     assert(ex == "-*****************0X0.P+0");
   15305                                     assert(ios.width() == 0);
   15306                                 }
   15307                             }
   15308                             ios.imbue(lg);
   15309                             {
   15310                                 ios.width(0);
   15311                                 {
   15312                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15313                                     std::string ex(str, iter.base());
   15314                                     assert(ex == "-0X0;P+0");
   15315                                     assert(ios.width() == 0);
   15316                                 }
   15317                                 ios.width(25);
   15318                                 left(ios);
   15319                                 {
   15320                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15321                                     std::string ex(str, iter.base());
   15322                                     assert(ex == "-0X0;P+0*****************");
   15323                                     assert(ios.width() == 0);
   15324                                 }
   15325                                 ios.width(25);
   15326                                 right(ios);
   15327                                 {
   15328                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15329                                     std::string ex(str, iter.base());
   15330                                     assert(ex == "*****************-0X0;P+0");
   15331                                     assert(ios.width() == 0);
   15332                                 }
   15333                                 ios.width(25);
   15334                                 internal(ios);
   15335                                 {
   15336                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15337                                     std::string ex(str, iter.base());
   15338                                     assert(ex == "-*****************0X0;P+0");
   15339                                     assert(ios.width() == 0);
   15340                                 }
   15341                             }
   15342                         }
   15343                     }
   15344                     showpos(ios);
   15345                     {
   15346                         noshowpoint(ios);
   15347                         {
   15348                             ios.imbue(lc);
   15349                             {
   15350                                 ios.width(0);
   15351                                 {
   15352                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15353                                     std::string ex(str, iter.base());
   15354                                     assert(ex == "-0X0P+0");
   15355                                     assert(ios.width() == 0);
   15356                                 }
   15357                                 ios.width(25);
   15358                                 left(ios);
   15359                                 {
   15360                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15361                                     std::string ex(str, iter.base());
   15362                                     assert(ex == "-0X0P+0******************");
   15363                                     assert(ios.width() == 0);
   15364                                 }
   15365                                 ios.width(25);
   15366                                 right(ios);
   15367                                 {
   15368                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15369                                     std::string ex(str, iter.base());
   15370                                     assert(ex == "******************-0X0P+0");
   15371                                     assert(ios.width() == 0);
   15372                                 }
   15373                                 ios.width(25);
   15374                                 internal(ios);
   15375                                 {
   15376                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15377                                     std::string ex(str, iter.base());
   15378                                     assert(ex == "-******************0X0P+0");
   15379                                     assert(ios.width() == 0);
   15380                                 }
   15381                             }
   15382                             ios.imbue(lg);
   15383                             {
   15384                                 ios.width(0);
   15385                                 {
   15386                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15387                                     std::string ex(str, iter.base());
   15388                                     assert(ex == "-0X0P+0");
   15389                                     assert(ios.width() == 0);
   15390                                 }
   15391                                 ios.width(25);
   15392                                 left(ios);
   15393                                 {
   15394                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15395                                     std::string ex(str, iter.base());
   15396                                     assert(ex == "-0X0P+0******************");
   15397                                     assert(ios.width() == 0);
   15398                                 }
   15399                                 ios.width(25);
   15400                                 right(ios);
   15401                                 {
   15402                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15403                                     std::string ex(str, iter.base());
   15404                                     assert(ex == "******************-0X0P+0");
   15405                                     assert(ios.width() == 0);
   15406                                 }
   15407                                 ios.width(25);
   15408                                 internal(ios);
   15409                                 {
   15410                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15411                                     std::string ex(str, iter.base());
   15412                                     assert(ex == "-******************0X0P+0");
   15413                                     assert(ios.width() == 0);
   15414                                 }
   15415                             }
   15416                         }
   15417                         showpoint(ios);
   15418                         {
   15419                             ios.imbue(lc);
   15420                             {
   15421                                 ios.width(0);
   15422                                 {
   15423                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15424                                     std::string ex(str, iter.base());
   15425                                     assert(ex == "-0X0.P+0");
   15426                                     assert(ios.width() == 0);
   15427                                 }
   15428                                 ios.width(25);
   15429                                 left(ios);
   15430                                 {
   15431                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15432                                     std::string ex(str, iter.base());
   15433                                     assert(ex == "-0X0.P+0*****************");
   15434                                     assert(ios.width() == 0);
   15435                                 }
   15436                                 ios.width(25);
   15437                                 right(ios);
   15438                                 {
   15439                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15440                                     std::string ex(str, iter.base());
   15441                                     assert(ex == "*****************-0X0.P+0");
   15442                                     assert(ios.width() == 0);
   15443                                 }
   15444                                 ios.width(25);
   15445                                 internal(ios);
   15446                                 {
   15447                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15448                                     std::string ex(str, iter.base());
   15449                                     assert(ex == "-*****************0X0.P+0");
   15450                                     assert(ios.width() == 0);
   15451                                 }
   15452                             }
   15453                             ios.imbue(lg);
   15454                             {
   15455                                 ios.width(0);
   15456                                 {
   15457                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15458                                     std::string ex(str, iter.base());
   15459                                     assert(ex == "-0X0;P+0");
   15460                                     assert(ios.width() == 0);
   15461                                 }
   15462                                 ios.width(25);
   15463                                 left(ios);
   15464                                 {
   15465                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15466                                     std::string ex(str, iter.base());
   15467                                     assert(ex == "-0X0;P+0*****************");
   15468                                     assert(ios.width() == 0);
   15469                                 }
   15470                                 ios.width(25);
   15471                                 right(ios);
   15472                                 {
   15473                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15474                                     std::string ex(str, iter.base());
   15475                                     assert(ex == "*****************-0X0;P+0");
   15476                                     assert(ios.width() == 0);
   15477                                 }
   15478                                 ios.width(25);
   15479                                 internal(ios);
   15480                                 {
   15481                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15482                                     std::string ex(str, iter.base());
   15483                                     assert(ex == "-*****************0X0;P+0");
   15484                                     assert(ios.width() == 0);
   15485                                 }
   15486                             }
   15487                         }
   15488                     }
   15489                 }
   15490             }
   15491             ios.precision(6);
   15492             {
   15493                 nouppercase(ios);
   15494                 {
   15495                     noshowpos(ios);
   15496                     {
   15497                         noshowpoint(ios);
   15498                         {
   15499                             ios.imbue(lc);
   15500                             {
   15501                                 ios.width(0);
   15502                                 {
   15503                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15504                                     std::string ex(str, iter.base());
   15505                                     assert(ex == "-0x0p+0");
   15506                                     assert(ios.width() == 0);
   15507                                 }
   15508                                 ios.width(25);
   15509                                 left(ios);
   15510                                 {
   15511                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15512                                     std::string ex(str, iter.base());
   15513                                     assert(ex == "-0x0p+0******************");
   15514                                     assert(ios.width() == 0);
   15515                                 }
   15516                                 ios.width(25);
   15517                                 right(ios);
   15518                                 {
   15519                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15520                                     std::string ex(str, iter.base());
   15521                                     assert(ex == "******************-0x0p+0");
   15522                                     assert(ios.width() == 0);
   15523                                 }
   15524                                 ios.width(25);
   15525                                 internal(ios);
   15526                                 {
   15527                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15528                                     std::string ex(str, iter.base());
   15529                                     assert(ex == "-******************0x0p+0");
   15530                                     assert(ios.width() == 0);
   15531                                 }
   15532                             }
   15533                             ios.imbue(lg);
   15534                             {
   15535                                 ios.width(0);
   15536                                 {
   15537                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15538                                     std::string ex(str, iter.base());
   15539                                     assert(ex == "-0x0p+0");
   15540                                     assert(ios.width() == 0);
   15541                                 }
   15542                                 ios.width(25);
   15543                                 left(ios);
   15544                                 {
   15545                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15546                                     std::string ex(str, iter.base());
   15547                                     assert(ex == "-0x0p+0******************");
   15548                                     assert(ios.width() == 0);
   15549                                 }
   15550                                 ios.width(25);
   15551                                 right(ios);
   15552                                 {
   15553                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15554                                     std::string ex(str, iter.base());
   15555                                     assert(ex == "******************-0x0p+0");
   15556                                     assert(ios.width() == 0);
   15557                                 }
   15558                                 ios.width(25);
   15559                                 internal(ios);
   15560                                 {
   15561                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15562                                     std::string ex(str, iter.base());
   15563                                     assert(ex == "-******************0x0p+0");
   15564                                     assert(ios.width() == 0);
   15565                                 }
   15566                             }
   15567                         }
   15568                         showpoint(ios);
   15569                         {
   15570                             ios.imbue(lc);
   15571                             {
   15572                                 ios.width(0);
   15573                                 {
   15574                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15575                                     std::string ex(str, iter.base());
   15576                                     assert(ex == "-0x0.p+0");
   15577                                     assert(ios.width() == 0);
   15578                                 }
   15579                                 ios.width(25);
   15580                                 left(ios);
   15581                                 {
   15582                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15583                                     std::string ex(str, iter.base());
   15584                                     assert(ex == "-0x0.p+0*****************");
   15585                                     assert(ios.width() == 0);
   15586                                 }
   15587                                 ios.width(25);
   15588                                 right(ios);
   15589                                 {
   15590                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15591                                     std::string ex(str, iter.base());
   15592                                     assert(ex == "*****************-0x0.p+0");
   15593                                     assert(ios.width() == 0);
   15594                                 }
   15595                                 ios.width(25);
   15596                                 internal(ios);
   15597                                 {
   15598                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15599                                     std::string ex(str, iter.base());
   15600                                     assert(ex == "-*****************0x0.p+0");
   15601                                     assert(ios.width() == 0);
   15602                                 }
   15603                             }
   15604                             ios.imbue(lg);
   15605                             {
   15606                                 ios.width(0);
   15607                                 {
   15608                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15609                                     std::string ex(str, iter.base());
   15610                                     assert(ex == "-0x0;p+0");
   15611                                     assert(ios.width() == 0);
   15612                                 }
   15613                                 ios.width(25);
   15614                                 left(ios);
   15615                                 {
   15616                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15617                                     std::string ex(str, iter.base());
   15618                                     assert(ex == "-0x0;p+0*****************");
   15619                                     assert(ios.width() == 0);
   15620                                 }
   15621                                 ios.width(25);
   15622                                 right(ios);
   15623                                 {
   15624                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15625                                     std::string ex(str, iter.base());
   15626                                     assert(ex == "*****************-0x0;p+0");
   15627                                     assert(ios.width() == 0);
   15628                                 }
   15629                                 ios.width(25);
   15630                                 internal(ios);
   15631                                 {
   15632                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15633                                     std::string ex(str, iter.base());
   15634                                     assert(ex == "-*****************0x0;p+0");
   15635                                     assert(ios.width() == 0);
   15636                                 }
   15637                             }
   15638                         }
   15639                     }
   15640                     showpos(ios);
   15641                     {
   15642                         noshowpoint(ios);
   15643                         {
   15644                             ios.imbue(lc);
   15645                             {
   15646                                 ios.width(0);
   15647                                 {
   15648                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15649                                     std::string ex(str, iter.base());
   15650                                     assert(ex == "-0x0p+0");
   15651                                     assert(ios.width() == 0);
   15652                                 }
   15653                                 ios.width(25);
   15654                                 left(ios);
   15655                                 {
   15656                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15657                                     std::string ex(str, iter.base());
   15658                                     assert(ex == "-0x0p+0******************");
   15659                                     assert(ios.width() == 0);
   15660                                 }
   15661                                 ios.width(25);
   15662                                 right(ios);
   15663                                 {
   15664                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15665                                     std::string ex(str, iter.base());
   15666                                     assert(ex == "******************-0x0p+0");
   15667                                     assert(ios.width() == 0);
   15668                                 }
   15669                                 ios.width(25);
   15670                                 internal(ios);
   15671                                 {
   15672                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15673                                     std::string ex(str, iter.base());
   15674                                     assert(ex == "-******************0x0p+0");
   15675                                     assert(ios.width() == 0);
   15676                                 }
   15677                             }
   15678                             ios.imbue(lg);
   15679                             {
   15680                                 ios.width(0);
   15681                                 {
   15682                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15683                                     std::string ex(str, iter.base());
   15684                                     assert(ex == "-0x0p+0");
   15685                                     assert(ios.width() == 0);
   15686                                 }
   15687                                 ios.width(25);
   15688                                 left(ios);
   15689                                 {
   15690                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15691                                     std::string ex(str, iter.base());
   15692                                     assert(ex == "-0x0p+0******************");
   15693                                     assert(ios.width() == 0);
   15694                                 }
   15695                                 ios.width(25);
   15696                                 right(ios);
   15697                                 {
   15698                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15699                                     std::string ex(str, iter.base());
   15700                                     assert(ex == "******************-0x0p+0");
   15701                                     assert(ios.width() == 0);
   15702                                 }
   15703                                 ios.width(25);
   15704                                 internal(ios);
   15705                                 {
   15706                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15707                                     std::string ex(str, iter.base());
   15708                                     assert(ex == "-******************0x0p+0");
   15709                                     assert(ios.width() == 0);
   15710                                 }
   15711                             }
   15712                         }
   15713                         showpoint(ios);
   15714                         {
   15715                             ios.imbue(lc);
   15716                             {
   15717                                 ios.width(0);
   15718                                 {
   15719                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15720                                     std::string ex(str, iter.base());
   15721                                     assert(ex == "-0x0.p+0");
   15722                                     assert(ios.width() == 0);
   15723                                 }
   15724                                 ios.width(25);
   15725                                 left(ios);
   15726                                 {
   15727                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15728                                     std::string ex(str, iter.base());
   15729                                     assert(ex == "-0x0.p+0*****************");
   15730                                     assert(ios.width() == 0);
   15731                                 }
   15732                                 ios.width(25);
   15733                                 right(ios);
   15734                                 {
   15735                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15736                                     std::string ex(str, iter.base());
   15737                                     assert(ex == "*****************-0x0.p+0");
   15738                                     assert(ios.width() == 0);
   15739                                 }
   15740                                 ios.width(25);
   15741                                 internal(ios);
   15742                                 {
   15743                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15744                                     std::string ex(str, iter.base());
   15745                                     assert(ex == "-*****************0x0.p+0");
   15746                                     assert(ios.width() == 0);
   15747                                 }
   15748                             }
   15749                             ios.imbue(lg);
   15750                             {
   15751                                 ios.width(0);
   15752                                 {
   15753                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15754                                     std::string ex(str, iter.base());
   15755                                     assert(ex == "-0x0;p+0");
   15756                                     assert(ios.width() == 0);
   15757                                 }
   15758                                 ios.width(25);
   15759                                 left(ios);
   15760                                 {
   15761                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15762                                     std::string ex(str, iter.base());
   15763                                     assert(ex == "-0x0;p+0*****************");
   15764                                     assert(ios.width() == 0);
   15765                                 }
   15766                                 ios.width(25);
   15767                                 right(ios);
   15768                                 {
   15769                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15770                                     std::string ex(str, iter.base());
   15771                                     assert(ex == "*****************-0x0;p+0");
   15772                                     assert(ios.width() == 0);
   15773                                 }
   15774                                 ios.width(25);
   15775                                 internal(ios);
   15776                                 {
   15777                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15778                                     std::string ex(str, iter.base());
   15779                                     assert(ex == "-*****************0x0;p+0");
   15780                                     assert(ios.width() == 0);
   15781                                 }
   15782                             }
   15783                         }
   15784                     }
   15785                 }
   15786                 uppercase(ios);
   15787                 {
   15788                     noshowpos(ios);
   15789                     {
   15790                         noshowpoint(ios);
   15791                         {
   15792                             ios.imbue(lc);
   15793                             {
   15794                                 ios.width(0);
   15795                                 {
   15796                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15797                                     std::string ex(str, iter.base());
   15798                                     assert(ex == "-0X0P+0");
   15799                                     assert(ios.width() == 0);
   15800                                 }
   15801                                 ios.width(25);
   15802                                 left(ios);
   15803                                 {
   15804                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15805                                     std::string ex(str, iter.base());
   15806                                     assert(ex == "-0X0P+0******************");
   15807                                     assert(ios.width() == 0);
   15808                                 }
   15809                                 ios.width(25);
   15810                                 right(ios);
   15811                                 {
   15812                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15813                                     std::string ex(str, iter.base());
   15814                                     assert(ex == "******************-0X0P+0");
   15815                                     assert(ios.width() == 0);
   15816                                 }
   15817                                 ios.width(25);
   15818                                 internal(ios);
   15819                                 {
   15820                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15821                                     std::string ex(str, iter.base());
   15822                                     assert(ex == "-******************0X0P+0");
   15823                                     assert(ios.width() == 0);
   15824                                 }
   15825                             }
   15826                             ios.imbue(lg);
   15827                             {
   15828                                 ios.width(0);
   15829                                 {
   15830                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15831                                     std::string ex(str, iter.base());
   15832                                     assert(ex == "-0X0P+0");
   15833                                     assert(ios.width() == 0);
   15834                                 }
   15835                                 ios.width(25);
   15836                                 left(ios);
   15837                                 {
   15838                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15839                                     std::string ex(str, iter.base());
   15840                                     assert(ex == "-0X0P+0******************");
   15841                                     assert(ios.width() == 0);
   15842                                 }
   15843                                 ios.width(25);
   15844                                 right(ios);
   15845                                 {
   15846                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15847                                     std::string ex(str, iter.base());
   15848                                     assert(ex == "******************-0X0P+0");
   15849                                     assert(ios.width() == 0);
   15850                                 }
   15851                                 ios.width(25);
   15852                                 internal(ios);
   15853                                 {
   15854                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15855                                     std::string ex(str, iter.base());
   15856                                     assert(ex == "-******************0X0P+0");
   15857                                     assert(ios.width() == 0);
   15858                                 }
   15859                             }
   15860                         }
   15861                         showpoint(ios);
   15862                         {
   15863                             ios.imbue(lc);
   15864                             {
   15865                                 ios.width(0);
   15866                                 {
   15867                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15868                                     std::string ex(str, iter.base());
   15869                                     assert(ex == "-0X0.P+0");
   15870                                     assert(ios.width() == 0);
   15871                                 }
   15872                                 ios.width(25);
   15873                                 left(ios);
   15874                                 {
   15875                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15876                                     std::string ex(str, iter.base());
   15877                                     assert(ex == "-0X0.P+0*****************");
   15878                                     assert(ios.width() == 0);
   15879                                 }
   15880                                 ios.width(25);
   15881                                 right(ios);
   15882                                 {
   15883                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15884                                     std::string ex(str, iter.base());
   15885                                     assert(ex == "*****************-0X0.P+0");
   15886                                     assert(ios.width() == 0);
   15887                                 }
   15888                                 ios.width(25);
   15889                                 internal(ios);
   15890                                 {
   15891                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15892                                     std::string ex(str, iter.base());
   15893                                     assert(ex == "-*****************0X0.P+0");
   15894                                     assert(ios.width() == 0);
   15895                                 }
   15896                             }
   15897                             ios.imbue(lg);
   15898                             {
   15899                                 ios.width(0);
   15900                                 {
   15901                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15902                                     std::string ex(str, iter.base());
   15903                                     assert(ex == "-0X0;P+0");
   15904                                     assert(ios.width() == 0);
   15905                                 }
   15906                                 ios.width(25);
   15907                                 left(ios);
   15908                                 {
   15909                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15910                                     std::string ex(str, iter.base());
   15911                                     assert(ex == "-0X0;P+0*****************");
   15912                                     assert(ios.width() == 0);
   15913                                 }
   15914                                 ios.width(25);
   15915                                 right(ios);
   15916                                 {
   15917                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15918                                     std::string ex(str, iter.base());
   15919                                     assert(ex == "*****************-0X0;P+0");
   15920                                     assert(ios.width() == 0);
   15921                                 }
   15922                                 ios.width(25);
   15923                                 internal(ios);
   15924                                 {
   15925                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15926                                     std::string ex(str, iter.base());
   15927                                     assert(ex == "-*****************0X0;P+0");
   15928                                     assert(ios.width() == 0);
   15929                                 }
   15930                             }
   15931                         }
   15932                     }
   15933                     showpos(ios);
   15934                     {
   15935                         noshowpoint(ios);
   15936                         {
   15937                             ios.imbue(lc);
   15938                             {
   15939                                 ios.width(0);
   15940                                 {
   15941                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15942                                     std::string ex(str, iter.base());
   15943                                     assert(ex == "-0X0P+0");
   15944                                     assert(ios.width() == 0);
   15945                                 }
   15946                                 ios.width(25);
   15947                                 left(ios);
   15948                                 {
   15949                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15950                                     std::string ex(str, iter.base());
   15951                                     assert(ex == "-0X0P+0******************");
   15952                                     assert(ios.width() == 0);
   15953                                 }
   15954                                 ios.width(25);
   15955                                 right(ios);
   15956                                 {
   15957                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15958                                     std::string ex(str, iter.base());
   15959                                     assert(ex == "******************-0X0P+0");
   15960                                     assert(ios.width() == 0);
   15961                                 }
   15962                                 ios.width(25);
   15963                                 internal(ios);
   15964                                 {
   15965                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15966                                     std::string ex(str, iter.base());
   15967                                     assert(ex == "-******************0X0P+0");
   15968                                     assert(ios.width() == 0);
   15969                                 }
   15970                             }
   15971                             ios.imbue(lg);
   15972                             {
   15973                                 ios.width(0);
   15974                                 {
   15975                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15976                                     std::string ex(str, iter.base());
   15977                                     assert(ex == "-0X0P+0");
   15978                                     assert(ios.width() == 0);
   15979                                 }
   15980                                 ios.width(25);
   15981                                 left(ios);
   15982                                 {
   15983                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15984                                     std::string ex(str, iter.base());
   15985                                     assert(ex == "-0X0P+0******************");
   15986                                     assert(ios.width() == 0);
   15987                                 }
   15988                                 ios.width(25);
   15989                                 right(ios);
   15990                                 {
   15991                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   15992                                     std::string ex(str, iter.base());
   15993                                     assert(ex == "******************-0X0P+0");
   15994                                     assert(ios.width() == 0);
   15995                                 }
   15996                                 ios.width(25);
   15997                                 internal(ios);
   15998                                 {
   15999                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16000                                     std::string ex(str, iter.base());
   16001                                     assert(ex == "-******************0X0P+0");
   16002                                     assert(ios.width() == 0);
   16003                                 }
   16004                             }
   16005                         }
   16006                         showpoint(ios);
   16007                         {
   16008                             ios.imbue(lc);
   16009                             {
   16010                                 ios.width(0);
   16011                                 {
   16012                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16013                                     std::string ex(str, iter.base());
   16014                                     assert(ex == "-0X0.P+0");
   16015                                     assert(ios.width() == 0);
   16016                                 }
   16017                                 ios.width(25);
   16018                                 left(ios);
   16019                                 {
   16020                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16021                                     std::string ex(str, iter.base());
   16022                                     assert(ex == "-0X0.P+0*****************");
   16023                                     assert(ios.width() == 0);
   16024                                 }
   16025                                 ios.width(25);
   16026                                 right(ios);
   16027                                 {
   16028                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16029                                     std::string ex(str, iter.base());
   16030                                     assert(ex == "*****************-0X0.P+0");
   16031                                     assert(ios.width() == 0);
   16032                                 }
   16033                                 ios.width(25);
   16034                                 internal(ios);
   16035                                 {
   16036                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16037                                     std::string ex(str, iter.base());
   16038                                     assert(ex == "-*****************0X0.P+0");
   16039                                     assert(ios.width() == 0);
   16040                                 }
   16041                             }
   16042                             ios.imbue(lg);
   16043                             {
   16044                                 ios.width(0);
   16045                                 {
   16046                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16047                                     std::string ex(str, iter.base());
   16048                                     assert(ex == "-0X0;P+0");
   16049                                     assert(ios.width() == 0);
   16050                                 }
   16051                                 ios.width(25);
   16052                                 left(ios);
   16053                                 {
   16054                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16055                                     std::string ex(str, iter.base());
   16056                                     assert(ex == "-0X0;P+0*****************");
   16057                                     assert(ios.width() == 0);
   16058                                 }
   16059                                 ios.width(25);
   16060                                 right(ios);
   16061                                 {
   16062                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16063                                     std::string ex(str, iter.base());
   16064                                     assert(ex == "*****************-0X0;P+0");
   16065                                     assert(ios.width() == 0);
   16066                                 }
   16067                                 ios.width(25);
   16068                                 internal(ios);
   16069                                 {
   16070                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16071                                     std::string ex(str, iter.base());
   16072                                     assert(ex == "-*****************0X0;P+0");
   16073                                     assert(ios.width() == 0);
   16074                                 }
   16075                             }
   16076                         }
   16077                     }
   16078                 }
   16079             }
   16080             ios.precision(16);
   16081             {
   16082             }
   16083             ios.precision(60);
   16084             {
   16085             }
   16086         }
   16087     }
   16088 }
   16089 
   16090 void test8()
   16091 {
   16092     char str[200];
   16093     output_iterator<char*> iter;
   16094     std::locale lc = std::locale::classic();
   16095     std::locale lg(lc, new my_numpunct);
   16096     const my_facet f(1);
   16097     {
   16098         double v = 1234567890.125;
   16099         std::ios ios(0);
   16100         hexfloat(ios);
   16101         // %a
   16102         {
   16103             ios.precision(0);
   16104             {
   16105                 nouppercase(ios);
   16106                 {
   16107                     noshowpos(ios);
   16108                     {
   16109                         noshowpoint(ios);
   16110                         {
   16111                             ios.imbue(lc);
   16112                             {
   16113                                 ios.width(0);
   16114                                 {
   16115                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16116                                     std::string ex(str, iter.base());
   16117                                     assert(ex == "0x1.26580b488p+30");
   16118                                     assert(ios.width() == 0);
   16119                                 }
   16120                                 ios.width(25);
   16121                                 left(ios);
   16122                                 {
   16123                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16124                                     std::string ex(str, iter.base());
   16125                                     assert(ex == "0x1.26580b488p+30********");
   16126                                     assert(ios.width() == 0);
   16127                                 }
   16128                                 ios.width(25);
   16129                                 right(ios);
   16130                                 {
   16131                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16132                                     std::string ex(str, iter.base());
   16133                                     assert(ex == "********0x1.26580b488p+30");
   16134                                     assert(ios.width() == 0);
   16135                                 }
   16136                                 ios.width(25);
   16137                                 internal(ios);
   16138                                 {
   16139                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16140                                     std::string ex(str, iter.base());
   16141                                     assert(ex == "0x********1.26580b488p+30");
   16142                                     assert(ios.width() == 0);
   16143                                 }
   16144                             }
   16145                             ios.imbue(lg);
   16146                             {
   16147                                 ios.width(0);
   16148                                 {
   16149                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16150                                     std::string ex(str, iter.base());
   16151                                     assert(ex == "0x1;26580b488p+30");
   16152                                     assert(ios.width() == 0);
   16153                                 }
   16154                                 ios.width(25);
   16155                                 left(ios);
   16156                                 {
   16157                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16158                                     std::string ex(str, iter.base());
   16159                                     assert(ex == "0x1;26580b488p+30********");
   16160                                     assert(ios.width() == 0);
   16161                                 }
   16162                                 ios.width(25);
   16163                                 right(ios);
   16164                                 {
   16165                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16166                                     std::string ex(str, iter.base());
   16167                                     assert(ex == "********0x1;26580b488p+30");
   16168                                     assert(ios.width() == 0);
   16169                                 }
   16170                                 ios.width(25);
   16171                                 internal(ios);
   16172                                 {
   16173                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16174                                     std::string ex(str, iter.base());
   16175                                     assert(ex == "0x********1;26580b488p+30");
   16176                                     assert(ios.width() == 0);
   16177                                 }
   16178                             }
   16179                         }
   16180                         showpoint(ios);
   16181                         {
   16182                             ios.imbue(lc);
   16183                             {
   16184                                 ios.width(0);
   16185                                 {
   16186                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16187                                     std::string ex(str, iter.base());
   16188                                     assert(ex == "0x1.26580b488p+30");
   16189                                     assert(ios.width() == 0);
   16190                                 }
   16191                                 ios.width(25);
   16192                                 left(ios);
   16193                                 {
   16194                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16195                                     std::string ex(str, iter.base());
   16196                                     assert(ex == "0x1.26580b488p+30********");
   16197                                     assert(ios.width() == 0);
   16198                                 }
   16199                                 ios.width(25);
   16200                                 right(ios);
   16201                                 {
   16202                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16203                                     std::string ex(str, iter.base());
   16204                                     assert(ex == "********0x1.26580b488p+30");
   16205                                     assert(ios.width() == 0);
   16206                                 }
   16207                                 ios.width(25);
   16208                                 internal(ios);
   16209                                 {
   16210                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16211                                     std::string ex(str, iter.base());
   16212                                     assert(ex == "0x********1.26580b488p+30");
   16213                                     assert(ios.width() == 0);
   16214                                 }
   16215                             }
   16216                             ios.imbue(lg);
   16217                             {
   16218                                 ios.width(0);
   16219                                 {
   16220                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16221                                     std::string ex(str, iter.base());
   16222                                     assert(ex == "0x1;26580b488p+30");
   16223                                     assert(ios.width() == 0);
   16224                                 }
   16225                                 ios.width(25);
   16226                                 left(ios);
   16227                                 {
   16228                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16229                                     std::string ex(str, iter.base());
   16230                                     assert(ex == "0x1;26580b488p+30********");
   16231                                     assert(ios.width() == 0);
   16232                                 }
   16233                                 ios.width(25);
   16234                                 right(ios);
   16235                                 {
   16236                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16237                                     std::string ex(str, iter.base());
   16238                                     assert(ex == "********0x1;26580b488p+30");
   16239                                     assert(ios.width() == 0);
   16240                                 }
   16241                                 ios.width(25);
   16242                                 internal(ios);
   16243                                 {
   16244                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16245                                     std::string ex(str, iter.base());
   16246                                     assert(ex == "0x********1;26580b488p+30");
   16247                                     assert(ios.width() == 0);
   16248                                 }
   16249                             }
   16250                         }
   16251                     }
   16252                     showpos(ios);
   16253                     {
   16254                         noshowpoint(ios);
   16255                         {
   16256                             ios.imbue(lc);
   16257                             {
   16258                                 ios.width(0);
   16259                                 {
   16260                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16261                                     std::string ex(str, iter.base());
   16262                                     assert(ex == "+0x1.26580b488p+30");
   16263                                     assert(ios.width() == 0);
   16264                                 }
   16265                                 ios.width(25);
   16266                                 left(ios);
   16267                                 {
   16268                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16269                                     std::string ex(str, iter.base());
   16270                                     assert(ex == "+0x1.26580b488p+30*******");
   16271                                     assert(ios.width() == 0);
   16272                                 }
   16273                                 ios.width(25);
   16274                                 right(ios);
   16275                                 {
   16276                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16277                                     std::string ex(str, iter.base());
   16278                                     assert(ex == "*******+0x1.26580b488p+30");
   16279                                     assert(ios.width() == 0);
   16280                                 }
   16281                                 ios.width(25);
   16282                                 internal(ios);
   16283                                 {
   16284                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16285                                     std::string ex(str, iter.base());
   16286                                     assert(ex == "+*******0x1.26580b488p+30");
   16287                                     assert(ios.width() == 0);
   16288                                 }
   16289                             }
   16290                             ios.imbue(lg);
   16291                             {
   16292                                 ios.width(0);
   16293                                 {
   16294                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16295                                     std::string ex(str, iter.base());
   16296                                     assert(ex == "+0x1;26580b488p+30");
   16297                                     assert(ios.width() == 0);
   16298                                 }
   16299                                 ios.width(25);
   16300                                 left(ios);
   16301                                 {
   16302                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16303                                     std::string ex(str, iter.base());
   16304                                     assert(ex == "+0x1;26580b488p+30*******");
   16305                                     assert(ios.width() == 0);
   16306                                 }
   16307                                 ios.width(25);
   16308                                 right(ios);
   16309                                 {
   16310                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16311                                     std::string ex(str, iter.base());
   16312                                     assert(ex == "*******+0x1;26580b488p+30");
   16313                                     assert(ios.width() == 0);
   16314                                 }
   16315                                 ios.width(25);
   16316                                 internal(ios);
   16317                                 {
   16318                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16319                                     std::string ex(str, iter.base());
   16320                                     assert(ex == "+*******0x1;26580b488p+30");
   16321                                     assert(ios.width() == 0);
   16322                                 }
   16323                             }
   16324                         }
   16325                         showpoint(ios);
   16326                         {
   16327                             ios.imbue(lc);
   16328                             {
   16329                                 ios.width(0);
   16330                                 {
   16331                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16332                                     std::string ex(str, iter.base());
   16333                                     assert(ex == "+0x1.26580b488p+30");
   16334                                     assert(ios.width() == 0);
   16335                                 }
   16336                                 ios.width(25);
   16337                                 left(ios);
   16338                                 {
   16339                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16340                                     std::string ex(str, iter.base());
   16341                                     assert(ex == "+0x1.26580b488p+30*******");
   16342                                     assert(ios.width() == 0);
   16343                                 }
   16344                                 ios.width(25);
   16345                                 right(ios);
   16346                                 {
   16347                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16348                                     std::string ex(str, iter.base());
   16349                                     assert(ex == "*******+0x1.26580b488p+30");
   16350                                     assert(ios.width() == 0);
   16351                                 }
   16352                                 ios.width(25);
   16353                                 internal(ios);
   16354                                 {
   16355                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16356                                     std::string ex(str, iter.base());
   16357                                     assert(ex == "+*******0x1.26580b488p+30");
   16358                                     assert(ios.width() == 0);
   16359                                 }
   16360                             }
   16361                             ios.imbue(lg);
   16362                             {
   16363                                 ios.width(0);
   16364                                 {
   16365                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16366                                     std::string ex(str, iter.base());
   16367                                     assert(ex == "+0x1;26580b488p+30");
   16368                                     assert(ios.width() == 0);
   16369                                 }
   16370                                 ios.width(25);
   16371                                 left(ios);
   16372                                 {
   16373                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16374                                     std::string ex(str, iter.base());
   16375                                     assert(ex == "+0x1;26580b488p+30*******");
   16376                                     assert(ios.width() == 0);
   16377                                 }
   16378                                 ios.width(25);
   16379                                 right(ios);
   16380                                 {
   16381                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16382                                     std::string ex(str, iter.base());
   16383                                     assert(ex == "*******+0x1;26580b488p+30");
   16384                                     assert(ios.width() == 0);
   16385                                 }
   16386                                 ios.width(25);
   16387                                 internal(ios);
   16388                                 {
   16389                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16390                                     std::string ex(str, iter.base());
   16391                                     assert(ex == "+*******0x1;26580b488p+30");
   16392                                     assert(ios.width() == 0);
   16393                                 }
   16394                             }
   16395                         }
   16396                     }
   16397                 }
   16398                 uppercase(ios);
   16399                 {
   16400                     noshowpos(ios);
   16401                     {
   16402                         noshowpoint(ios);
   16403                         {
   16404                             ios.imbue(lc);
   16405                             {
   16406                                 ios.width(0);
   16407                                 {
   16408                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16409                                     std::string ex(str, iter.base());
   16410                                     assert(ex == "0X1.26580B488P+30");
   16411                                     assert(ios.width() == 0);
   16412                                 }
   16413                                 ios.width(25);
   16414                                 left(ios);
   16415                                 {
   16416                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16417                                     std::string ex(str, iter.base());
   16418                                     assert(ex == "0X1.26580B488P+30********");
   16419                                     assert(ios.width() == 0);
   16420                                 }
   16421                                 ios.width(25);
   16422                                 right(ios);
   16423                                 {
   16424                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16425                                     std::string ex(str, iter.base());
   16426                                     assert(ex == "********0X1.26580B488P+30");
   16427                                     assert(ios.width() == 0);
   16428                                 }
   16429                                 ios.width(25);
   16430                                 internal(ios);
   16431                                 {
   16432                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16433                                     std::string ex(str, iter.base());
   16434                                     assert(ex == "0X********1.26580B488P+30");
   16435                                     assert(ios.width() == 0);
   16436                                 }
   16437                             }
   16438                             ios.imbue(lg);
   16439                             {
   16440                                 ios.width(0);
   16441                                 {
   16442                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16443                                     std::string ex(str, iter.base());
   16444                                     assert(ex == "0X1;26580B488P+30");
   16445                                     assert(ios.width() == 0);
   16446                                 }
   16447                                 ios.width(25);
   16448                                 left(ios);
   16449                                 {
   16450                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16451                                     std::string ex(str, iter.base());
   16452                                     assert(ex == "0X1;26580B488P+30********");
   16453                                     assert(ios.width() == 0);
   16454                                 }
   16455                                 ios.width(25);
   16456                                 right(ios);
   16457                                 {
   16458                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16459                                     std::string ex(str, iter.base());
   16460                                     assert(ex == "********0X1;26580B488P+30");
   16461                                     assert(ios.width() == 0);
   16462                                 }
   16463                                 ios.width(25);
   16464                                 internal(ios);
   16465                                 {
   16466                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16467                                     std::string ex(str, iter.base());
   16468                                     assert(ex == "0X********1;26580B488P+30");
   16469                                     assert(ios.width() == 0);
   16470                                 }
   16471                             }
   16472                         }
   16473                         showpoint(ios);
   16474                         {
   16475                             ios.imbue(lc);
   16476                             {
   16477                                 ios.width(0);
   16478                                 {
   16479                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16480                                     std::string ex(str, iter.base());
   16481                                     assert(ex == "0X1.26580B488P+30");
   16482                                     assert(ios.width() == 0);
   16483                                 }
   16484                                 ios.width(25);
   16485                                 left(ios);
   16486                                 {
   16487                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16488                                     std::string ex(str, iter.base());
   16489                                     assert(ex == "0X1.26580B488P+30********");
   16490                                     assert(ios.width() == 0);
   16491                                 }
   16492                                 ios.width(25);
   16493                                 right(ios);
   16494                                 {
   16495                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16496                                     std::string ex(str, iter.base());
   16497                                     assert(ex == "********0X1.26580B488P+30");
   16498                                     assert(ios.width() == 0);
   16499                                 }
   16500                                 ios.width(25);
   16501                                 internal(ios);
   16502                                 {
   16503                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16504                                     std::string ex(str, iter.base());
   16505                                     assert(ex == "0X********1.26580B488P+30");
   16506                                     assert(ios.width() == 0);
   16507                                 }
   16508                             }
   16509                             ios.imbue(lg);
   16510                             {
   16511                                 ios.width(0);
   16512                                 {
   16513                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16514                                     std::string ex(str, iter.base());
   16515                                     assert(ex == "0X1;26580B488P+30");
   16516                                     assert(ios.width() == 0);
   16517                                 }
   16518                                 ios.width(25);
   16519                                 left(ios);
   16520                                 {
   16521                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16522                                     std::string ex(str, iter.base());
   16523                                     assert(ex == "0X1;26580B488P+30********");
   16524                                     assert(ios.width() == 0);
   16525                                 }
   16526                                 ios.width(25);
   16527                                 right(ios);
   16528                                 {
   16529                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16530                                     std::string ex(str, iter.base());
   16531                                     assert(ex == "********0X1;26580B488P+30");
   16532                                     assert(ios.width() == 0);
   16533                                 }
   16534                                 ios.width(25);
   16535                                 internal(ios);
   16536                                 {
   16537                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16538                                     std::string ex(str, iter.base());
   16539                                     assert(ex == "0X********1;26580B488P+30");
   16540                                     assert(ios.width() == 0);
   16541                                 }
   16542                             }
   16543                         }
   16544                     }
   16545                     showpos(ios);
   16546                     {
   16547                         noshowpoint(ios);
   16548                         {
   16549                             ios.imbue(lc);
   16550                             {
   16551                                 ios.width(0);
   16552                                 {
   16553                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16554                                     std::string ex(str, iter.base());
   16555                                     assert(ex == "+0X1.26580B488P+30");
   16556                                     assert(ios.width() == 0);
   16557                                 }
   16558                                 ios.width(25);
   16559                                 left(ios);
   16560                                 {
   16561                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16562                                     std::string ex(str, iter.base());
   16563                                     assert(ex == "+0X1.26580B488P+30*******");
   16564                                     assert(ios.width() == 0);
   16565                                 }
   16566                                 ios.width(25);
   16567                                 right(ios);
   16568                                 {
   16569                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16570                                     std::string ex(str, iter.base());
   16571                                     assert(ex == "*******+0X1.26580B488P+30");
   16572                                     assert(ios.width() == 0);
   16573                                 }
   16574                                 ios.width(25);
   16575                                 internal(ios);
   16576                                 {
   16577                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16578                                     std::string ex(str, iter.base());
   16579                                     assert(ex == "+*******0X1.26580B488P+30");
   16580                                     assert(ios.width() == 0);
   16581                                 }
   16582                             }
   16583                             ios.imbue(lg);
   16584                             {
   16585                                 ios.width(0);
   16586                                 {
   16587                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16588                                     std::string ex(str, iter.base());
   16589                                     assert(ex == "+0X1;26580B488P+30");
   16590                                     assert(ios.width() == 0);
   16591                                 }
   16592                                 ios.width(25);
   16593                                 left(ios);
   16594                                 {
   16595                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16596                                     std::string ex(str, iter.base());
   16597                                     assert(ex == "+0X1;26580B488P+30*******");
   16598                                     assert(ios.width() == 0);
   16599                                 }
   16600                                 ios.width(25);
   16601                                 right(ios);
   16602                                 {
   16603                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16604                                     std::string ex(str, iter.base());
   16605                                     assert(ex == "*******+0X1;26580B488P+30");
   16606                                     assert(ios.width() == 0);
   16607                                 }
   16608                                 ios.width(25);
   16609                                 internal(ios);
   16610                                 {
   16611                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16612                                     std::string ex(str, iter.base());
   16613                                     assert(ex == "+*******0X1;26580B488P+30");
   16614                                     assert(ios.width() == 0);
   16615                                 }
   16616                             }
   16617                         }
   16618                         showpoint(ios);
   16619                         {
   16620                             ios.imbue(lc);
   16621                             {
   16622                                 ios.width(0);
   16623                                 {
   16624                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16625                                     std::string ex(str, iter.base());
   16626                                     assert(ex == "+0X1.26580B488P+30");
   16627                                     assert(ios.width() == 0);
   16628                                 }
   16629                                 ios.width(25);
   16630                                 left(ios);
   16631                                 {
   16632                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16633                                     std::string ex(str, iter.base());
   16634                                     assert(ex == "+0X1.26580B488P+30*******");
   16635                                     assert(ios.width() == 0);
   16636                                 }
   16637                                 ios.width(25);
   16638                                 right(ios);
   16639                                 {
   16640                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16641                                     std::string ex(str, iter.base());
   16642                                     assert(ex == "*******+0X1.26580B488P+30");
   16643                                     assert(ios.width() == 0);
   16644                                 }
   16645                                 ios.width(25);
   16646                                 internal(ios);
   16647                                 {
   16648                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16649                                     std::string ex(str, iter.base());
   16650                                     assert(ex == "+*******0X1.26580B488P+30");
   16651                                     assert(ios.width() == 0);
   16652                                 }
   16653                             }
   16654                             ios.imbue(lg);
   16655                             {
   16656                                 ios.width(0);
   16657                                 {
   16658                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16659                                     std::string ex(str, iter.base());
   16660                                     assert(ex == "+0X1;26580B488P+30");
   16661                                     assert(ios.width() == 0);
   16662                                 }
   16663                                 ios.width(25);
   16664                                 left(ios);
   16665                                 {
   16666                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16667                                     std::string ex(str, iter.base());
   16668                                     assert(ex == "+0X1;26580B488P+30*******");
   16669                                     assert(ios.width() == 0);
   16670                                 }
   16671                                 ios.width(25);
   16672                                 right(ios);
   16673                                 {
   16674                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16675                                     std::string ex(str, iter.base());
   16676                                     assert(ex == "*******+0X1;26580B488P+30");
   16677                                     assert(ios.width() == 0);
   16678                                 }
   16679                                 ios.width(25);
   16680                                 internal(ios);
   16681                                 {
   16682                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16683                                     std::string ex(str, iter.base());
   16684                                     assert(ex == "+*******0X1;26580B488P+30");
   16685                                     assert(ios.width() == 0);
   16686                                 }
   16687                             }
   16688                         }
   16689                     }
   16690                 }
   16691             }
   16692             ios.precision(1);
   16693             {
   16694                 nouppercase(ios);
   16695                 {
   16696                     noshowpos(ios);
   16697                     {
   16698                         noshowpoint(ios);
   16699                         {
   16700                             ios.imbue(lc);
   16701                             {
   16702                                 ios.width(0);
   16703                                 {
   16704                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16705                                     std::string ex(str, iter.base());
   16706                                     assert(ex == "0x1.26580b488p+30");
   16707                                     assert(ios.width() == 0);
   16708                                 }
   16709                                 ios.width(25);
   16710                                 left(ios);
   16711                                 {
   16712                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16713                                     std::string ex(str, iter.base());
   16714                                     assert(ex == "0x1.26580b488p+30********");
   16715                                     assert(ios.width() == 0);
   16716                                 }
   16717                                 ios.width(25);
   16718                                 right(ios);
   16719                                 {
   16720                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16721                                     std::string ex(str, iter.base());
   16722                                     assert(ex == "********0x1.26580b488p+30");
   16723                                     assert(ios.width() == 0);
   16724                                 }
   16725                                 ios.width(25);
   16726                                 internal(ios);
   16727                                 {
   16728                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16729                                     std::string ex(str, iter.base());
   16730                                     assert(ex == "0x********1.26580b488p+30");
   16731                                     assert(ios.width() == 0);
   16732                                 }
   16733                             }
   16734                             ios.imbue(lg);
   16735                             {
   16736                                 ios.width(0);
   16737                                 {
   16738                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16739                                     std::string ex(str, iter.base());
   16740                                     assert(ex == "0x1;26580b488p+30");
   16741                                     assert(ios.width() == 0);
   16742                                 }
   16743                                 ios.width(25);
   16744                                 left(ios);
   16745                                 {
   16746                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16747                                     std::string ex(str, iter.base());
   16748                                     assert(ex == "0x1;26580b488p+30********");
   16749                                     assert(ios.width() == 0);
   16750                                 }
   16751                                 ios.width(25);
   16752                                 right(ios);
   16753                                 {
   16754                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16755                                     std::string ex(str, iter.base());
   16756                                     assert(ex == "********0x1;26580b488p+30");
   16757                                     assert(ios.width() == 0);
   16758                                 }
   16759                                 ios.width(25);
   16760                                 internal(ios);
   16761                                 {
   16762                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16763                                     std::string ex(str, iter.base());
   16764                                     assert(ex == "0x********1;26580b488p+30");
   16765                                     assert(ios.width() == 0);
   16766                                 }
   16767                             }
   16768                         }
   16769                         showpoint(ios);
   16770                         {
   16771                             ios.imbue(lc);
   16772                             {
   16773                                 ios.width(0);
   16774                                 {
   16775                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16776                                     std::string ex(str, iter.base());
   16777                                     assert(ex == "0x1.26580b488p+30");
   16778                                     assert(ios.width() == 0);
   16779                                 }
   16780                                 ios.width(25);
   16781                                 left(ios);
   16782                                 {
   16783                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16784                                     std::string ex(str, iter.base());
   16785                                     assert(ex == "0x1.26580b488p+30********");
   16786                                     assert(ios.width() == 0);
   16787                                 }
   16788                                 ios.width(25);
   16789                                 right(ios);
   16790                                 {
   16791                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16792                                     std::string ex(str, iter.base());
   16793                                     assert(ex == "********0x1.26580b488p+30");
   16794                                     assert(ios.width() == 0);
   16795                                 }
   16796                                 ios.width(25);
   16797                                 internal(ios);
   16798                                 {
   16799                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16800                                     std::string ex(str, iter.base());
   16801                                     assert(ex == "0x********1.26580b488p+30");
   16802                                     assert(ios.width() == 0);
   16803                                 }
   16804                             }
   16805                             ios.imbue(lg);
   16806                             {
   16807                                 ios.width(0);
   16808                                 {
   16809                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16810                                     std::string ex(str, iter.base());
   16811                                     assert(ex == "0x1;26580b488p+30");
   16812                                     assert(ios.width() == 0);
   16813                                 }
   16814                                 ios.width(25);
   16815                                 left(ios);
   16816                                 {
   16817                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16818                                     std::string ex(str, iter.base());
   16819                                     assert(ex == "0x1;26580b488p+30********");
   16820                                     assert(ios.width() == 0);
   16821                                 }
   16822                                 ios.width(25);
   16823                                 right(ios);
   16824                                 {
   16825                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16826                                     std::string ex(str, iter.base());
   16827                                     assert(ex == "********0x1;26580b488p+30");
   16828                                     assert(ios.width() == 0);
   16829                                 }
   16830                                 ios.width(25);
   16831                                 internal(ios);
   16832                                 {
   16833                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16834                                     std::string ex(str, iter.base());
   16835                                     assert(ex == "0x********1;26580b488p+30");
   16836                                     assert(ios.width() == 0);
   16837                                 }
   16838                             }
   16839                         }
   16840                     }
   16841                     showpos(ios);
   16842                     {
   16843                         noshowpoint(ios);
   16844                         {
   16845                             ios.imbue(lc);
   16846                             {
   16847                                 ios.width(0);
   16848                                 {
   16849                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16850                                     std::string ex(str, iter.base());
   16851                                     assert(ex == "+0x1.26580b488p+30");
   16852                                     assert(ios.width() == 0);
   16853                                 }
   16854                                 ios.width(25);
   16855                                 left(ios);
   16856                                 {
   16857                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16858                                     std::string ex(str, iter.base());
   16859                                     assert(ex == "+0x1.26580b488p+30*******");
   16860                                     assert(ios.width() == 0);
   16861                                 }
   16862                                 ios.width(25);
   16863                                 right(ios);
   16864                                 {
   16865                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16866                                     std::string ex(str, iter.base());
   16867                                     assert(ex == "*******+0x1.26580b488p+30");
   16868                                     assert(ios.width() == 0);
   16869                                 }
   16870                                 ios.width(25);
   16871                                 internal(ios);
   16872                                 {
   16873                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16874                                     std::string ex(str, iter.base());
   16875                                     assert(ex == "+*******0x1.26580b488p+30");
   16876                                     assert(ios.width() == 0);
   16877                                 }
   16878                             }
   16879                             ios.imbue(lg);
   16880                             {
   16881                                 ios.width(0);
   16882                                 {
   16883                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16884                                     std::string ex(str, iter.base());
   16885                                     assert(ex == "+0x1;26580b488p+30");
   16886                                     assert(ios.width() == 0);
   16887                                 }
   16888                                 ios.width(25);
   16889                                 left(ios);
   16890                                 {
   16891                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16892                                     std::string ex(str, iter.base());
   16893                                     assert(ex == "+0x1;26580b488p+30*******");
   16894                                     assert(ios.width() == 0);
   16895                                 }
   16896                                 ios.width(25);
   16897                                 right(ios);
   16898                                 {
   16899                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16900                                     std::string ex(str, iter.base());
   16901                                     assert(ex == "*******+0x1;26580b488p+30");
   16902                                     assert(ios.width() == 0);
   16903                                 }
   16904                                 ios.width(25);
   16905                                 internal(ios);
   16906                                 {
   16907                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16908                                     std::string ex(str, iter.base());
   16909                                     assert(ex == "+*******0x1;26580b488p+30");
   16910                                     assert(ios.width() == 0);
   16911                                 }
   16912                             }
   16913                         }
   16914                         showpoint(ios);
   16915                         {
   16916                             ios.imbue(lc);
   16917                             {
   16918                                 ios.width(0);
   16919                                 {
   16920                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16921                                     std::string ex(str, iter.base());
   16922                                     assert(ex == "+0x1.26580b488p+30");
   16923                                     assert(ios.width() == 0);
   16924                                 }
   16925                                 ios.width(25);
   16926                                 left(ios);
   16927                                 {
   16928                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16929                                     std::string ex(str, iter.base());
   16930                                     assert(ex == "+0x1.26580b488p+30*******");
   16931                                     assert(ios.width() == 0);
   16932                                 }
   16933                                 ios.width(25);
   16934                                 right(ios);
   16935                                 {
   16936                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16937                                     std::string ex(str, iter.base());
   16938                                     assert(ex == "*******+0x1.26580b488p+30");
   16939                                     assert(ios.width() == 0);
   16940                                 }
   16941                                 ios.width(25);
   16942                                 internal(ios);
   16943                                 {
   16944                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16945                                     std::string ex(str, iter.base());
   16946                                     assert(ex == "+*******0x1.26580b488p+30");
   16947                                     assert(ios.width() == 0);
   16948                                 }
   16949                             }
   16950                             ios.imbue(lg);
   16951                             {
   16952                                 ios.width(0);
   16953                                 {
   16954                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16955                                     std::string ex(str, iter.base());
   16956                                     assert(ex == "+0x1;26580b488p+30");
   16957                                     assert(ios.width() == 0);
   16958                                 }
   16959                                 ios.width(25);
   16960                                 left(ios);
   16961                                 {
   16962                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16963                                     std::string ex(str, iter.base());
   16964                                     assert(ex == "+0x1;26580b488p+30*******");
   16965                                     assert(ios.width() == 0);
   16966                                 }
   16967                                 ios.width(25);
   16968                                 right(ios);
   16969                                 {
   16970                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16971                                     std::string ex(str, iter.base());
   16972                                     assert(ex == "*******+0x1;26580b488p+30");
   16973                                     assert(ios.width() == 0);
   16974                                 }
   16975                                 ios.width(25);
   16976                                 internal(ios);
   16977                                 {
   16978                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16979                                     std::string ex(str, iter.base());
   16980                                     assert(ex == "+*******0x1;26580b488p+30");
   16981                                     assert(ios.width() == 0);
   16982                                 }
   16983                             }
   16984                         }
   16985                     }
   16986                 }
   16987                 uppercase(ios);
   16988                 {
   16989                     noshowpos(ios);
   16990                     {
   16991                         noshowpoint(ios);
   16992                         {
   16993                             ios.imbue(lc);
   16994                             {
   16995                                 ios.width(0);
   16996                                 {
   16997                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   16998                                     std::string ex(str, iter.base());
   16999                                     assert(ex == "0X1.26580B488P+30");
   17000                                     assert(ios.width() == 0);
   17001                                 }
   17002                                 ios.width(25);
   17003                                 left(ios);
   17004                                 {
   17005                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17006                                     std::string ex(str, iter.base());
   17007                                     assert(ex == "0X1.26580B488P+30********");
   17008                                     assert(ios.width() == 0);
   17009                                 }
   17010                                 ios.width(25);
   17011                                 right(ios);
   17012                                 {
   17013                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17014                                     std::string ex(str, iter.base());
   17015                                     assert(ex == "********0X1.26580B488P+30");
   17016                                     assert(ios.width() == 0);
   17017                                 }
   17018                                 ios.width(25);
   17019                                 internal(ios);
   17020                                 {
   17021                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17022                                     std::string ex(str, iter.base());
   17023                                     assert(ex == "0X********1.26580B488P+30");
   17024                                     assert(ios.width() == 0);
   17025                                 }
   17026                             }
   17027                             ios.imbue(lg);
   17028                             {
   17029                                 ios.width(0);
   17030                                 {
   17031                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17032                                     std::string ex(str, iter.base());
   17033                                     assert(ex == "0X1;26580B488P+30");
   17034                                     assert(ios.width() == 0);
   17035                                 }
   17036                                 ios.width(25);
   17037                                 left(ios);
   17038                                 {
   17039                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17040                                     std::string ex(str, iter.base());
   17041                                     assert(ex == "0X1;26580B488P+30********");
   17042                                     assert(ios.width() == 0);
   17043                                 }
   17044                                 ios.width(25);
   17045                                 right(ios);
   17046                                 {
   17047                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17048                                     std::string ex(str, iter.base());
   17049                                     assert(ex == "********0X1;26580B488P+30");
   17050                                     assert(ios.width() == 0);
   17051                                 }
   17052                                 ios.width(25);
   17053                                 internal(ios);
   17054                                 {
   17055                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17056                                     std::string ex(str, iter.base());
   17057                                     assert(ex == "0X********1;26580B488P+30");
   17058                                     assert(ios.width() == 0);
   17059                                 }
   17060                             }
   17061                         }
   17062                         showpoint(ios);
   17063                         {
   17064                             ios.imbue(lc);
   17065                             {
   17066                                 ios.width(0);
   17067                                 {
   17068                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17069                                     std::string ex(str, iter.base());
   17070                                     assert(ex == "0X1.26580B488P+30");
   17071                                     assert(ios.width() == 0);
   17072                                 }
   17073                                 ios.width(25);
   17074                                 left(ios);
   17075                                 {
   17076                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17077                                     std::string ex(str, iter.base());
   17078                                     assert(ex == "0X1.26580B488P+30********");
   17079                                     assert(ios.width() == 0);
   17080                                 }
   17081                                 ios.width(25);
   17082                                 right(ios);
   17083                                 {
   17084                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17085                                     std::string ex(str, iter.base());
   17086                                     assert(ex == "********0X1.26580B488P+30");
   17087                                     assert(ios.width() == 0);
   17088                                 }
   17089                                 ios.width(25);
   17090                                 internal(ios);
   17091                                 {
   17092                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17093                                     std::string ex(str, iter.base());
   17094                                     assert(ex == "0X********1.26580B488P+30");
   17095                                     assert(ios.width() == 0);
   17096                                 }
   17097                             }
   17098                             ios.imbue(lg);
   17099                             {
   17100                                 ios.width(0);
   17101                                 {
   17102                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17103                                     std::string ex(str, iter.base());
   17104                                     assert(ex == "0X1;26580B488P+30");
   17105                                     assert(ios.width() == 0);
   17106                                 }
   17107                                 ios.width(25);
   17108                                 left(ios);
   17109                                 {
   17110                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17111                                     std::string ex(str, iter.base());
   17112                                     assert(ex == "0X1;26580B488P+30********");
   17113                                     assert(ios.width() == 0);
   17114                                 }
   17115                                 ios.width(25);
   17116                                 right(ios);
   17117                                 {
   17118                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17119                                     std::string ex(str, iter.base());
   17120                                     assert(ex == "********0X1;26580B488P+30");
   17121                                     assert(ios.width() == 0);
   17122                                 }
   17123                                 ios.width(25);
   17124                                 internal(ios);
   17125                                 {
   17126                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17127                                     std::string ex(str, iter.base());
   17128                                     assert(ex == "0X********1;26580B488P+30");
   17129                                     assert(ios.width() == 0);
   17130                                 }
   17131                             }
   17132                         }
   17133                     }
   17134                     showpos(ios);
   17135                     {
   17136                         noshowpoint(ios);
   17137                         {
   17138                             ios.imbue(lc);
   17139                             {
   17140                                 ios.width(0);
   17141                                 {
   17142                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17143                                     std::string ex(str, iter.base());
   17144                                     assert(ex == "+0X1.26580B488P+30");
   17145                                     assert(ios.width() == 0);
   17146                                 }
   17147                                 ios.width(25);
   17148                                 left(ios);
   17149                                 {
   17150                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17151                                     std::string ex(str, iter.base());
   17152                                     assert(ex == "+0X1.26580B488P+30*******");
   17153                                     assert(ios.width() == 0);
   17154                                 }
   17155                                 ios.width(25);
   17156                                 right(ios);
   17157                                 {
   17158                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17159                                     std::string ex(str, iter.base());
   17160                                     assert(ex == "*******+0X1.26580B488P+30");
   17161                                     assert(ios.width() == 0);
   17162                                 }
   17163                                 ios.width(25);
   17164                                 internal(ios);
   17165                                 {
   17166                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17167                                     std::string ex(str, iter.base());
   17168                                     assert(ex == "+*******0X1.26580B488P+30");
   17169                                     assert(ios.width() == 0);
   17170                                 }
   17171                             }
   17172                             ios.imbue(lg);
   17173                             {
   17174                                 ios.width(0);
   17175                                 {
   17176                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17177                                     std::string ex(str, iter.base());
   17178                                     assert(ex == "+0X1;26580B488P+30");
   17179                                     assert(ios.width() == 0);
   17180                                 }
   17181                                 ios.width(25);
   17182                                 left(ios);
   17183                                 {
   17184                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17185                                     std::string ex(str, iter.base());
   17186                                     assert(ex == "+0X1;26580B488P+30*******");
   17187                                     assert(ios.width() == 0);
   17188                                 }
   17189                                 ios.width(25);
   17190                                 right(ios);
   17191                                 {
   17192                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17193                                     std::string ex(str, iter.base());
   17194                                     assert(ex == "*******+0X1;26580B488P+30");
   17195                                     assert(ios.width() == 0);
   17196                                 }
   17197                                 ios.width(25);
   17198                                 internal(ios);
   17199                                 {
   17200                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17201                                     std::string ex(str, iter.base());
   17202                                     assert(ex == "+*******0X1;26580B488P+30");
   17203                                     assert(ios.width() == 0);
   17204                                 }
   17205                             }
   17206                         }
   17207                         showpoint(ios);
   17208                         {
   17209                             ios.imbue(lc);
   17210                             {
   17211                                 ios.width(0);
   17212                                 {
   17213                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17214                                     std::string ex(str, iter.base());
   17215                                     assert(ex == "+0X1.26580B488P+30");
   17216                                     assert(ios.width() == 0);
   17217                                 }
   17218                                 ios.width(25);
   17219                                 left(ios);
   17220                                 {
   17221                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17222                                     std::string ex(str, iter.base());
   17223                                     assert(ex == "+0X1.26580B488P+30*******");
   17224                                     assert(ios.width() == 0);
   17225                                 }
   17226                                 ios.width(25);
   17227                                 right(ios);
   17228                                 {
   17229                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17230                                     std::string ex(str, iter.base());
   17231                                     assert(ex == "*******+0X1.26580B488P+30");
   17232                                     assert(ios.width() == 0);
   17233                                 }
   17234                                 ios.width(25);
   17235                                 internal(ios);
   17236                                 {
   17237                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17238                                     std::string ex(str, iter.base());
   17239                                     assert(ex == "+*******0X1.26580B488P+30");
   17240                                     assert(ios.width() == 0);
   17241                                 }
   17242                             }
   17243                             ios.imbue(lg);
   17244                             {
   17245                                 ios.width(0);
   17246                                 {
   17247                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17248                                     std::string ex(str, iter.base());
   17249                                     assert(ex == "+0X1;26580B488P+30");
   17250                                     assert(ios.width() == 0);
   17251                                 }
   17252                                 ios.width(25);
   17253                                 left(ios);
   17254                                 {
   17255                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17256                                     std::string ex(str, iter.base());
   17257                                     assert(ex == "+0X1;26580B488P+30*******");
   17258                                     assert(ios.width() == 0);
   17259                                 }
   17260                                 ios.width(25);
   17261                                 right(ios);
   17262                                 {
   17263                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17264                                     std::string ex(str, iter.base());
   17265                                     assert(ex == "*******+0X1;26580B488P+30");
   17266                                     assert(ios.width() == 0);
   17267                                 }
   17268                                 ios.width(25);
   17269                                 internal(ios);
   17270                                 {
   17271                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17272                                     std::string ex(str, iter.base());
   17273                                     assert(ex == "+*******0X1;26580B488P+30");
   17274                                     assert(ios.width() == 0);
   17275                                 }
   17276                             }
   17277                         }
   17278                     }
   17279                 }
   17280             }
   17281             ios.precision(6);
   17282             {
   17283             }
   17284             ios.precision(16);
   17285             {
   17286             }
   17287             ios.precision(60);
   17288             {
   17289                 nouppercase(ios);
   17290                 {
   17291                     noshowpos(ios);
   17292                     {
   17293                         noshowpoint(ios);
   17294                         {
   17295                             ios.imbue(lc);
   17296                             {
   17297                                 ios.width(0);
   17298                                 {
   17299                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17300                                     std::string ex(str, iter.base());
   17301                                     assert(ex == "0x1.26580b488p+30");
   17302                                     assert(ios.width() == 0);
   17303                                 }
   17304                                 ios.width(25);
   17305                                 left(ios);
   17306                                 {
   17307                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17308                                     std::string ex(str, iter.base());
   17309                                     assert(ex == "0x1.26580b488p+30********");
   17310                                     assert(ios.width() == 0);
   17311                                 }
   17312                                 ios.width(25);
   17313                                 right(ios);
   17314                                 {
   17315                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17316                                     std::string ex(str, iter.base());
   17317                                     assert(ex == "********0x1.26580b488p+30");
   17318                                     assert(ios.width() == 0);
   17319                                 }
   17320                                 ios.width(25);
   17321                                 internal(ios);
   17322                                 {
   17323                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17324                                     std::string ex(str, iter.base());
   17325                                     assert(ex == "0x********1.26580b488p+30");
   17326                                     assert(ios.width() == 0);
   17327                                 }
   17328                             }
   17329                             ios.imbue(lg);
   17330                             {
   17331                                 ios.width(0);
   17332                                 {
   17333                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17334                                     std::string ex(str, iter.base());
   17335                                     assert(ex == "0x1;26580b488p+30");
   17336                                     assert(ios.width() == 0);
   17337                                 }
   17338                                 ios.width(25);
   17339                                 left(ios);
   17340                                 {
   17341                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17342                                     std::string ex(str, iter.base());
   17343                                     assert(ex == "0x1;26580b488p+30********");
   17344                                     assert(ios.width() == 0);
   17345                                 }
   17346                                 ios.width(25);
   17347                                 right(ios);
   17348                                 {
   17349                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17350                                     std::string ex(str, iter.base());
   17351                                     assert(ex == "********0x1;26580b488p+30");
   17352                                     assert(ios.width() == 0);
   17353                                 }
   17354                                 ios.width(25);
   17355                                 internal(ios);
   17356                                 {
   17357                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17358                                     std::string ex(str, iter.base());
   17359                                     assert(ex == "0x********1;26580b488p+30");
   17360                                     assert(ios.width() == 0);
   17361                                 }
   17362                             }
   17363                         }
   17364                         showpoint(ios);
   17365                         {
   17366                             ios.imbue(lc);
   17367                             {
   17368                                 ios.width(0);
   17369                                 {
   17370                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17371                                     std::string ex(str, iter.base());
   17372                                     assert(ex == "0x1.26580b488p+30");
   17373                                     assert(ios.width() == 0);
   17374                                 }
   17375                                 ios.width(25);
   17376                                 left(ios);
   17377                                 {
   17378                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17379                                     std::string ex(str, iter.base());
   17380                                     assert(ex == "0x1.26580b488p+30********");
   17381                                     assert(ios.width() == 0);
   17382                                 }
   17383                                 ios.width(25);
   17384                                 right(ios);
   17385                                 {
   17386                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17387                                     std::string ex(str, iter.base());
   17388                                     assert(ex == "********0x1.26580b488p+30");
   17389                                     assert(ios.width() == 0);
   17390                                 }
   17391                                 ios.width(25);
   17392                                 internal(ios);
   17393                                 {
   17394                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17395                                     std::string ex(str, iter.base());
   17396                                     assert(ex == "0x********1.26580b488p+30");
   17397                                     assert(ios.width() == 0);
   17398                                 }
   17399                             }
   17400                             ios.imbue(lg);
   17401                             {
   17402                                 ios.width(0);
   17403                                 {
   17404                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17405                                     std::string ex(str, iter.base());
   17406                                     assert(ex == "0x1;26580b488p+30");
   17407                                     assert(ios.width() == 0);
   17408                                 }
   17409                                 ios.width(25);
   17410                                 left(ios);
   17411                                 {
   17412                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17413                                     std::string ex(str, iter.base());
   17414                                     assert(ex == "0x1;26580b488p+30********");
   17415                                     assert(ios.width() == 0);
   17416                                 }
   17417                                 ios.width(25);
   17418                                 right(ios);
   17419                                 {
   17420                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17421                                     std::string ex(str, iter.base());
   17422                                     assert(ex == "********0x1;26580b488p+30");
   17423                                     assert(ios.width() == 0);
   17424                                 }
   17425                                 ios.width(25);
   17426                                 internal(ios);
   17427                                 {
   17428                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17429                                     std::string ex(str, iter.base());
   17430                                     assert(ex == "0x********1;26580b488p+30");
   17431                                     assert(ios.width() == 0);
   17432                                 }
   17433                             }
   17434                         }
   17435                     }
   17436                     showpos(ios);
   17437                     {
   17438                         noshowpoint(ios);
   17439                         {
   17440                             ios.imbue(lc);
   17441                             {
   17442                                 ios.width(0);
   17443                                 {
   17444                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17445                                     std::string ex(str, iter.base());
   17446                                     assert(ex == "+0x1.26580b488p+30");
   17447                                     assert(ios.width() == 0);
   17448                                 }
   17449                                 ios.width(25);
   17450                                 left(ios);
   17451                                 {
   17452                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17453                                     std::string ex(str, iter.base());
   17454                                     assert(ex == "+0x1.26580b488p+30*******");
   17455                                     assert(ios.width() == 0);
   17456                                 }
   17457                                 ios.width(25);
   17458                                 right(ios);
   17459                                 {
   17460                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17461                                     std::string ex(str, iter.base());
   17462                                     assert(ex == "*******+0x1.26580b488p+30");
   17463                                     assert(ios.width() == 0);
   17464                                 }
   17465                                 ios.width(25);
   17466                                 internal(ios);
   17467                                 {
   17468                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17469                                     std::string ex(str, iter.base());
   17470                                     assert(ex == "+*******0x1.26580b488p+30");
   17471                                     assert(ios.width() == 0);
   17472                                 }
   17473                             }
   17474                             ios.imbue(lg);
   17475                             {
   17476                                 ios.width(0);
   17477                                 {
   17478                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17479                                     std::string ex(str, iter.base());
   17480                                     assert(ex == "+0x1;26580b488p+30");
   17481                                     assert(ios.width() == 0);
   17482                                 }
   17483                                 ios.width(25);
   17484                                 left(ios);
   17485                                 {
   17486                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17487                                     std::string ex(str, iter.base());
   17488                                     assert(ex == "+0x1;26580b488p+30*******");
   17489                                     assert(ios.width() == 0);
   17490                                 }
   17491                                 ios.width(25);
   17492                                 right(ios);
   17493                                 {
   17494                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17495                                     std::string ex(str, iter.base());
   17496                                     assert(ex == "*******+0x1;26580b488p+30");
   17497                                     assert(ios.width() == 0);
   17498                                 }
   17499                                 ios.width(25);
   17500                                 internal(ios);
   17501                                 {
   17502                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17503                                     std::string ex(str, iter.base());
   17504                                     assert(ex == "+*******0x1;26580b488p+30");
   17505                                     assert(ios.width() == 0);
   17506                                 }
   17507                             }
   17508                         }
   17509                         showpoint(ios);
   17510                         {
   17511                             ios.imbue(lc);
   17512                             {
   17513                                 ios.width(0);
   17514                                 {
   17515                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17516                                     std::string ex(str, iter.base());
   17517                                     assert(ex == "+0x1.26580b488p+30");
   17518                                     assert(ios.width() == 0);
   17519                                 }
   17520                                 ios.width(25);
   17521                                 left(ios);
   17522                                 {
   17523                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17524                                     std::string ex(str, iter.base());
   17525                                     assert(ex == "+0x1.26580b488p+30*******");
   17526                                     assert(ios.width() == 0);
   17527                                 }
   17528                                 ios.width(25);
   17529                                 right(ios);
   17530                                 {
   17531                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17532                                     std::string ex(str, iter.base());
   17533                                     assert(ex == "*******+0x1.26580b488p+30");
   17534                                     assert(ios.width() == 0);
   17535                                 }
   17536                                 ios.width(25);
   17537                                 internal(ios);
   17538                                 {
   17539                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17540                                     std::string ex(str, iter.base());
   17541                                     assert(ex == "+*******0x1.26580b488p+30");
   17542                                     assert(ios.width() == 0);
   17543                                 }
   17544                             }
   17545                             ios.imbue(lg);
   17546                             {
   17547                                 ios.width(0);
   17548                                 {
   17549                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17550                                     std::string ex(str, iter.base());
   17551                                     assert(ex == "+0x1;26580b488p+30");
   17552                                     assert(ios.width() == 0);
   17553                                 }
   17554                                 ios.width(25);
   17555                                 left(ios);
   17556                                 {
   17557                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17558                                     std::string ex(str, iter.base());
   17559                                     assert(ex == "+0x1;26580b488p+30*******");
   17560                                     assert(ios.width() == 0);
   17561                                 }
   17562                                 ios.width(25);
   17563                                 right(ios);
   17564                                 {
   17565                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17566                                     std::string ex(str, iter.base());
   17567                                     assert(ex == "*******+0x1;26580b488p+30");
   17568                                     assert(ios.width() == 0);
   17569                                 }
   17570                                 ios.width(25);
   17571                                 internal(ios);
   17572                                 {
   17573                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17574                                     std::string ex(str, iter.base());
   17575                                     assert(ex == "+*******0x1;26580b488p+30");
   17576                                     assert(ios.width() == 0);
   17577                                 }
   17578                             }
   17579                         }
   17580                     }
   17581                 }
   17582                 uppercase(ios);
   17583                 {
   17584                     noshowpos(ios);
   17585                     {
   17586                         noshowpoint(ios);
   17587                         {
   17588                             ios.imbue(lc);
   17589                             {
   17590                                 ios.width(0);
   17591                                 {
   17592                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17593                                     std::string ex(str, iter.base());
   17594                                     assert(ex == "0X1.26580B488P+30");
   17595                                     assert(ios.width() == 0);
   17596                                 }
   17597                                 ios.width(25);
   17598                                 left(ios);
   17599                                 {
   17600                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17601                                     std::string ex(str, iter.base());
   17602                                     assert(ex == "0X1.26580B488P+30********");
   17603                                     assert(ios.width() == 0);
   17604                                 }
   17605                                 ios.width(25);
   17606                                 right(ios);
   17607                                 {
   17608                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17609                                     std::string ex(str, iter.base());
   17610                                     assert(ex == "********0X1.26580B488P+30");
   17611                                     assert(ios.width() == 0);
   17612                                 }
   17613                                 ios.width(25);
   17614                                 internal(ios);
   17615                                 {
   17616                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17617                                     std::string ex(str, iter.base());
   17618                                     assert(ex == "0X********1.26580B488P+30");
   17619                                     assert(ios.width() == 0);
   17620                                 }
   17621                             }
   17622                             ios.imbue(lg);
   17623                             {
   17624                                 ios.width(0);
   17625                                 {
   17626                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17627                                     std::string ex(str, iter.base());
   17628                                     assert(ex == "0X1;26580B488P+30");
   17629                                     assert(ios.width() == 0);
   17630                                 }
   17631                                 ios.width(25);
   17632                                 left(ios);
   17633                                 {
   17634                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17635                                     std::string ex(str, iter.base());
   17636                                     assert(ex == "0X1;26580B488P+30********");
   17637                                     assert(ios.width() == 0);
   17638                                 }
   17639                                 ios.width(25);
   17640                                 right(ios);
   17641                                 {
   17642                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17643                                     std::string ex(str, iter.base());
   17644                                     assert(ex == "********0X1;26580B488P+30");
   17645                                     assert(ios.width() == 0);
   17646                                 }
   17647                                 ios.width(25);
   17648                                 internal(ios);
   17649                                 {
   17650                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17651                                     std::string ex(str, iter.base());
   17652                                     assert(ex == "0X********1;26580B488P+30");
   17653                                     assert(ios.width() == 0);
   17654                                 }
   17655                             }
   17656                         }
   17657                         showpoint(ios);
   17658                         {
   17659                             ios.imbue(lc);
   17660                             {
   17661                                 ios.width(0);
   17662                                 {
   17663                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17664                                     std::string ex(str, iter.base());
   17665                                     assert(ex == "0X1.26580B488P+30");
   17666                                     assert(ios.width() == 0);
   17667                                 }
   17668                                 ios.width(25);
   17669                                 left(ios);
   17670                                 {
   17671                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17672                                     std::string ex(str, iter.base());
   17673                                     assert(ex == "0X1.26580B488P+30********");
   17674                                     assert(ios.width() == 0);
   17675                                 }
   17676                                 ios.width(25);
   17677                                 right(ios);
   17678                                 {
   17679                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17680                                     std::string ex(str, iter.base());
   17681                                     assert(ex == "********0X1.26580B488P+30");
   17682                                     assert(ios.width() == 0);
   17683                                 }
   17684                                 ios.width(25);
   17685                                 internal(ios);
   17686                                 {
   17687                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17688                                     std::string ex(str, iter.base());
   17689                                     assert(ex == "0X********1.26580B488P+30");
   17690                                     assert(ios.width() == 0);
   17691                                 }
   17692                             }
   17693                             ios.imbue(lg);
   17694                             {
   17695                                 ios.width(0);
   17696                                 {
   17697                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17698                                     std::string ex(str, iter.base());
   17699                                     assert(ex == "0X1;26580B488P+30");
   17700                                     assert(ios.width() == 0);
   17701                                 }
   17702                                 ios.width(25);
   17703                                 left(ios);
   17704                                 {
   17705                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17706                                     std::string ex(str, iter.base());
   17707                                     assert(ex == "0X1;26580B488P+30********");
   17708                                     assert(ios.width() == 0);
   17709                                 }
   17710                                 ios.width(25);
   17711                                 right(ios);
   17712                                 {
   17713                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17714                                     std::string ex(str, iter.base());
   17715                                     assert(ex == "********0X1;26580B488P+30");
   17716                                     assert(ios.width() == 0);
   17717                                 }
   17718                                 ios.width(25);
   17719                                 internal(ios);
   17720                                 {
   17721                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17722                                     std::string ex(str, iter.base());
   17723                                     assert(ex == "0X********1;26580B488P+30");
   17724                                     assert(ios.width() == 0);
   17725                                 }
   17726                             }
   17727                         }
   17728                     }
   17729                     showpos(ios);
   17730                     {
   17731                         noshowpoint(ios);
   17732                         {
   17733                             ios.imbue(lc);
   17734                             {
   17735                                 ios.width(0);
   17736                                 {
   17737                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17738                                     std::string ex(str, iter.base());
   17739                                     assert(ex == "+0X1.26580B488P+30");
   17740                                     assert(ios.width() == 0);
   17741                                 }
   17742                                 ios.width(25);
   17743                                 left(ios);
   17744                                 {
   17745                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17746                                     std::string ex(str, iter.base());
   17747                                     assert(ex == "+0X1.26580B488P+30*******");
   17748                                     assert(ios.width() == 0);
   17749                                 }
   17750                                 ios.width(25);
   17751                                 right(ios);
   17752                                 {
   17753                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17754                                     std::string ex(str, iter.base());
   17755                                     assert(ex == "*******+0X1.26580B488P+30");
   17756                                     assert(ios.width() == 0);
   17757                                 }
   17758                                 ios.width(25);
   17759                                 internal(ios);
   17760                                 {
   17761                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17762                                     std::string ex(str, iter.base());
   17763                                     assert(ex == "+*******0X1.26580B488P+30");
   17764                                     assert(ios.width() == 0);
   17765                                 }
   17766                             }
   17767                             ios.imbue(lg);
   17768                             {
   17769                                 ios.width(0);
   17770                                 {
   17771                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17772                                     std::string ex(str, iter.base());
   17773                                     assert(ex == "+0X1;26580B488P+30");
   17774                                     assert(ios.width() == 0);
   17775                                 }
   17776                                 ios.width(25);
   17777                                 left(ios);
   17778                                 {
   17779                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17780                                     std::string ex(str, iter.base());
   17781                                     assert(ex == "+0X1;26580B488P+30*******");
   17782                                     assert(ios.width() == 0);
   17783                                 }
   17784                                 ios.width(25);
   17785                                 right(ios);
   17786                                 {
   17787                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17788                                     std::string ex(str, iter.base());
   17789                                     assert(ex == "*******+0X1;26580B488P+30");
   17790                                     assert(ios.width() == 0);
   17791                                 }
   17792                                 ios.width(25);
   17793                                 internal(ios);
   17794                                 {
   17795                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17796                                     std::string ex(str, iter.base());
   17797                                     assert(ex == "+*******0X1;26580B488P+30");
   17798                                     assert(ios.width() == 0);
   17799                                 }
   17800                             }
   17801                         }
   17802                         showpoint(ios);
   17803                         {
   17804                             ios.imbue(lc);
   17805                             {
   17806                                 ios.width(0);
   17807                                 {
   17808                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17809                                     std::string ex(str, iter.base());
   17810                                     assert(ex == "+0X1.26580B488P+30");
   17811                                     assert(ios.width() == 0);
   17812                                 }
   17813                                 ios.width(25);
   17814                                 left(ios);
   17815                                 {
   17816                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17817                                     std::string ex(str, iter.base());
   17818                                     assert(ex == "+0X1.26580B488P+30*******");
   17819                                     assert(ios.width() == 0);
   17820                                 }
   17821                                 ios.width(25);
   17822                                 right(ios);
   17823                                 {
   17824                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17825                                     std::string ex(str, iter.base());
   17826                                     assert(ex == "*******+0X1.26580B488P+30");
   17827                                     assert(ios.width() == 0);
   17828                                 }
   17829                                 ios.width(25);
   17830                                 internal(ios);
   17831                                 {
   17832                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17833                                     std::string ex(str, iter.base());
   17834                                     assert(ex == "+*******0X1.26580B488P+30");
   17835                                     assert(ios.width() == 0);
   17836                                 }
   17837                             }
   17838                             ios.imbue(lg);
   17839                             {
   17840                                 ios.width(0);
   17841                                 {
   17842                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17843                                     std::string ex(str, iter.base());
   17844                                     assert(ex == "+0X1;26580B488P+30");
   17845                                     assert(ios.width() == 0);
   17846                                 }
   17847                                 ios.width(25);
   17848                                 left(ios);
   17849                                 {
   17850                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17851                                     std::string ex(str, iter.base());
   17852                                     assert(ex == "+0X1;26580B488P+30*******");
   17853                                     assert(ios.width() == 0);
   17854                                 }
   17855                                 ios.width(25);
   17856                                 right(ios);
   17857                                 {
   17858                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17859                                     std::string ex(str, iter.base());
   17860                                     assert(ex == "*******+0X1;26580B488P+30");
   17861                                     assert(ios.width() == 0);
   17862                                 }
   17863                                 ios.width(25);
   17864                                 internal(ios);
   17865                                 {
   17866                                     iter = f.put(output_iterator<char*>(str), ios, '*', v);
   17867                                     std::string ex(str, iter.base());
   17868                                     assert(ex == "+*******0X1;26580B488P+30");
   17869                                     assert(ios.width() == 0);
   17870                                 }
   17871                             }
   17872                         }
   17873                     }
   17874                 }
   17875             }
   17876         }
   17877     }
   17878 }
   17879 
   17880 int main()
   17881 {
   17882     test1();
   17883     test2();
   17884     test3();
   17885     test4();
   17886     test5();
   17887     test6();
   17888     test7();
   17889     test8();
   17890 }
   17891