put_double.pass.cpp revision f5256e16dfc425c1d466f6308d4026d529ce9e0b
1//===----------------------------------------------------------------------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. 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#include <locale>
17#include <ios>
18#include <cassert>
19#include <streambuf>
20#include <cmath>
21#include "iterators.h"
22
23typedef std::num_put<char, output_iterator<char*> > F;
24
25class my_facet
26    : public F
27{
28public:
29    explicit my_facet(std::size_t refs = 0)
30        : F(refs) {}
31};
32
33class my_numpunct
34    : public std::numpunct<char>
35{
36public:
37    my_numpunct() : std::numpunct<char>() {}
38
39protected:
40    virtual char_type do_decimal_point() const {return ';';}
41    virtual char_type do_thousands_sep() const {return '_';}
42    virtual std::string do_grouping() const {return std::string("\1\2\3");}
43};
44
45void test1()
46{
47    char str[200];
48    output_iterator<char*> iter;
49    std::locale lc = std::locale::classic();
50    std::locale lg(lc, new my_numpunct);
51    const my_facet f(1);
52    {
53        double v = +0.;
54        std::ios ios(0);
55        // %g
56        {
57            ios.precision(0);
58            {
59                nouppercase(ios);
60                {
61                    noshowpos(ios);
62                    {
63                        noshowpoint(ios);
64                        {
65                            ios.imbue(lc);
66                            {
67                                ios.width(0);
68                                {
69                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
70                                    std::string ex(str, iter.base());
71                                    assert(ex == "0");
72                                    assert(ios.width() == 0);
73                                }
74                                ios.width(25);
75                                left(ios);
76                                {
77                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
78                                    std::string ex(str, iter.base());
79                                    assert(ex == "0************************");
80                                    assert(ios.width() == 0);
81                                }
82                                ios.width(25);
83                                right(ios);
84                                {
85                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
86                                    std::string ex(str, iter.base());
87                                    assert(ex == "************************0");
88                                    assert(ios.width() == 0);
89                                }
90                                ios.width(25);
91                                internal(ios);
92                                {
93                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
94                                    std::string ex(str, iter.base());
95                                    assert(ex == "************************0");
96                                    assert(ios.width() == 0);
97                                }
98                            }
99                            ios.imbue(lg);
100                            {
101                                ios.width(0);
102                                {
103                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
104                                    std::string ex(str, iter.base());
105                                    assert(ex == "0");
106                                    assert(ios.width() == 0);
107                                }
108                                ios.width(25);
109                                left(ios);
110                                {
111                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
112                                    std::string ex(str, iter.base());
113                                    assert(ex == "0************************");
114                                    assert(ios.width() == 0);
115                                }
116                                ios.width(25);
117                                right(ios);
118                                {
119                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
120                                    std::string ex(str, iter.base());
121                                    assert(ex == "************************0");
122                                    assert(ios.width() == 0);
123                                }
124                                ios.width(25);
125                                internal(ios);
126                                {
127                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
128                                    std::string ex(str, iter.base());
129                                    assert(ex == "************************0");
130                                    assert(ios.width() == 0);
131                                }
132                            }
133                        }
134                        showpoint(ios);
135                        {
136                            ios.imbue(lc);
137                            {
138                                ios.width(0);
139                                {
140                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
141                                    std::string ex(str, iter.base());
142                                    assert(ex == "0.");
143                                    assert(ios.width() == 0);
144                                }
145                                ios.width(25);
146                                left(ios);
147                                {
148                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
149                                    std::string ex(str, iter.base());
150                                    assert(ex == "0.***********************");
151                                    assert(ios.width() == 0);
152                                }
153                                ios.width(25);
154                                right(ios);
155                                {
156                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
157                                    std::string ex(str, iter.base());
158                                    assert(ex == "***********************0.");
159                                    assert(ios.width() == 0);
160                                }
161                                ios.width(25);
162                                internal(ios);
163                                {
164                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
165                                    std::string ex(str, iter.base());
166                                    assert(ex == "***********************0.");
167                                    assert(ios.width() == 0);
168                                }
169                            }
170                            ios.imbue(lg);
171                            {
172                                ios.width(0);
173                                {
174                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
175                                    std::string ex(str, iter.base());
176                                    assert(ex == "0;");
177                                    assert(ios.width() == 0);
178                                }
179                                ios.width(25);
180                                left(ios);
181                                {
182                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
183                                    std::string ex(str, iter.base());
184                                    assert(ex == "0;***********************");
185                                    assert(ios.width() == 0);
186                                }
187                                ios.width(25);
188                                right(ios);
189                                {
190                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
191                                    std::string ex(str, iter.base());
192                                    assert(ex == "***********************0;");
193                                    assert(ios.width() == 0);
194                                }
195                                ios.width(25);
196                                internal(ios);
197                                {
198                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
199                                    std::string ex(str, iter.base());
200                                    assert(ex == "***********************0;");
201                                    assert(ios.width() == 0);
202                                }
203                            }
204                        }
205                    }
206                    showpos(ios);
207                    {
208                        noshowpoint(ios);
209                        {
210                            ios.imbue(lc);
211                            {
212                                ios.width(0);
213                                {
214                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
215                                    std::string ex(str, iter.base());
216                                    assert(ex == "+0");
217                                    assert(ios.width() == 0);
218                                }
219                                ios.width(25);
220                                left(ios);
221                                {
222                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
223                                    std::string ex(str, iter.base());
224                                    assert(ex == "+0***********************");
225                                    assert(ios.width() == 0);
226                                }
227                                ios.width(25);
228                                right(ios);
229                                {
230                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
231                                    std::string ex(str, iter.base());
232                                    assert(ex == "***********************+0");
233                                    assert(ios.width() == 0);
234                                }
235                                ios.width(25);
236                                internal(ios);
237                                {
238                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
239                                    std::string ex(str, iter.base());
240                                    assert(ex == "+***********************0");
241                                    assert(ios.width() == 0);
242                                }
243                            }
244                            ios.imbue(lg);
245                            {
246                                ios.width(0);
247                                {
248                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
249                                    std::string ex(str, iter.base());
250                                    assert(ex == "+0");
251                                    assert(ios.width() == 0);
252                                }
253                                ios.width(25);
254                                left(ios);
255                                {
256                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
257                                    std::string ex(str, iter.base());
258                                    assert(ex == "+0***********************");
259                                    assert(ios.width() == 0);
260                                }
261                                ios.width(25);
262                                right(ios);
263                                {
264                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
265                                    std::string ex(str, iter.base());
266                                    assert(ex == "***********************+0");
267                                    assert(ios.width() == 0);
268                                }
269                                ios.width(25);
270                                internal(ios);
271                                {
272                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
273                                    std::string ex(str, iter.base());
274                                    assert(ex == "+***********************0");
275                                    assert(ios.width() == 0);
276                                }
277                            }
278                        }
279                        showpoint(ios);
280                        {
281                            ios.imbue(lc);
282                            {
283                                ios.width(0);
284                                {
285                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
286                                    std::string ex(str, iter.base());
287                                    assert(ex == "+0.");
288                                    assert(ios.width() == 0);
289                                }
290                                ios.width(25);
291                                left(ios);
292                                {
293                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
294                                    std::string ex(str, iter.base());
295                                    assert(ex == "+0.**********************");
296                                    assert(ios.width() == 0);
297                                }
298                                ios.width(25);
299                                right(ios);
300                                {
301                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
302                                    std::string ex(str, iter.base());
303                                    assert(ex == "**********************+0.");
304                                    assert(ios.width() == 0);
305                                }
306                                ios.width(25);
307                                internal(ios);
308                                {
309                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
310                                    std::string ex(str, iter.base());
311                                    assert(ex == "+**********************0.");
312                                    assert(ios.width() == 0);
313                                }
314                            }
315                            ios.imbue(lg);
316                            {
317                                ios.width(0);
318                                {
319                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
320                                    std::string ex(str, iter.base());
321                                    assert(ex == "+0;");
322                                    assert(ios.width() == 0);
323                                }
324                                ios.width(25);
325                                left(ios);
326                                {
327                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
328                                    std::string ex(str, iter.base());
329                                    assert(ex == "+0;**********************");
330                                    assert(ios.width() == 0);
331                                }
332                                ios.width(25);
333                                right(ios);
334                                {
335                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
336                                    std::string ex(str, iter.base());
337                                    assert(ex == "**********************+0;");
338                                    assert(ios.width() == 0);
339                                }
340                                ios.width(25);
341                                internal(ios);
342                                {
343                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
344                                    std::string ex(str, iter.base());
345                                    assert(ex == "+**********************0;");
346                                    assert(ios.width() == 0);
347                                }
348                            }
349                        }
350                    }
351                }
352                uppercase(ios);
353                {
354                    noshowpos(ios);
355                    {
356                        noshowpoint(ios);
357                        {
358                            ios.imbue(lc);
359                            {
360                                ios.width(0);
361                                {
362                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
363                                    std::string ex(str, iter.base());
364                                    assert(ex == "0");
365                                    assert(ios.width() == 0);
366                                }
367                                ios.width(25);
368                                left(ios);
369                                {
370                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
371                                    std::string ex(str, iter.base());
372                                    assert(ex == "0************************");
373                                    assert(ios.width() == 0);
374                                }
375                                ios.width(25);
376                                right(ios);
377                                {
378                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
379                                    std::string ex(str, iter.base());
380                                    assert(ex == "************************0");
381                                    assert(ios.width() == 0);
382                                }
383                                ios.width(25);
384                                internal(ios);
385                                {
386                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
387                                    std::string ex(str, iter.base());
388                                    assert(ex == "************************0");
389                                    assert(ios.width() == 0);
390                                }
391                            }
392                            ios.imbue(lg);
393                            {
394                                ios.width(0);
395                                {
396                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
397                                    std::string ex(str, iter.base());
398                                    assert(ex == "0");
399                                    assert(ios.width() == 0);
400                                }
401                                ios.width(25);
402                                left(ios);
403                                {
404                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
405                                    std::string ex(str, iter.base());
406                                    assert(ex == "0************************");
407                                    assert(ios.width() == 0);
408                                }
409                                ios.width(25);
410                                right(ios);
411                                {
412                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
413                                    std::string ex(str, iter.base());
414                                    assert(ex == "************************0");
415                                    assert(ios.width() == 0);
416                                }
417                                ios.width(25);
418                                internal(ios);
419                                {
420                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
421                                    std::string ex(str, iter.base());
422                                    assert(ex == "************************0");
423                                    assert(ios.width() == 0);
424                                }
425                            }
426                        }
427                        showpoint(ios);
428                        {
429                            ios.imbue(lc);
430                            {
431                                ios.width(0);
432                                {
433                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
434                                    std::string ex(str, iter.base());
435                                    assert(ex == "0.");
436                                    assert(ios.width() == 0);
437                                }
438                                ios.width(25);
439                                left(ios);
440                                {
441                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
442                                    std::string ex(str, iter.base());
443                                    assert(ex == "0.***********************");
444                                    assert(ios.width() == 0);
445                                }
446                                ios.width(25);
447                                right(ios);
448                                {
449                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
450                                    std::string ex(str, iter.base());
451                                    assert(ex == "***********************0.");
452                                    assert(ios.width() == 0);
453                                }
454                                ios.width(25);
455                                internal(ios);
456                                {
457                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
458                                    std::string ex(str, iter.base());
459                                    assert(ex == "***********************0.");
460                                    assert(ios.width() == 0);
461                                }
462                            }
463                            ios.imbue(lg);
464                            {
465                                ios.width(0);
466                                {
467                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
468                                    std::string ex(str, iter.base());
469                                    assert(ex == "0;");
470                                    assert(ios.width() == 0);
471                                }
472                                ios.width(25);
473                                left(ios);
474                                {
475                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
476                                    std::string ex(str, iter.base());
477                                    assert(ex == "0;***********************");
478                                    assert(ios.width() == 0);
479                                }
480                                ios.width(25);
481                                right(ios);
482                                {
483                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
484                                    std::string ex(str, iter.base());
485                                    assert(ex == "***********************0;");
486                                    assert(ios.width() == 0);
487                                }
488                                ios.width(25);
489                                internal(ios);
490                                {
491                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
492                                    std::string ex(str, iter.base());
493                                    assert(ex == "***********************0;");
494                                    assert(ios.width() == 0);
495                                }
496                            }
497                        }
498                    }
499                    showpos(ios);
500                    {
501                        noshowpoint(ios);
502                        {
503                            ios.imbue(lc);
504                            {
505                                ios.width(0);
506                                {
507                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
508                                    std::string ex(str, iter.base());
509                                    assert(ex == "+0");
510                                    assert(ios.width() == 0);
511                                }
512                                ios.width(25);
513                                left(ios);
514                                {
515                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
516                                    std::string ex(str, iter.base());
517                                    assert(ex == "+0***********************");
518                                    assert(ios.width() == 0);
519                                }
520                                ios.width(25);
521                                right(ios);
522                                {
523                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
524                                    std::string ex(str, iter.base());
525                                    assert(ex == "***********************+0");
526                                    assert(ios.width() == 0);
527                                }
528                                ios.width(25);
529                                internal(ios);
530                                {
531                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
532                                    std::string ex(str, iter.base());
533                                    assert(ex == "+***********************0");
534                                    assert(ios.width() == 0);
535                                }
536                            }
537                            ios.imbue(lg);
538                            {
539                                ios.width(0);
540                                {
541                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
542                                    std::string ex(str, iter.base());
543                                    assert(ex == "+0");
544                                    assert(ios.width() == 0);
545                                }
546                                ios.width(25);
547                                left(ios);
548                                {
549                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
550                                    std::string ex(str, iter.base());
551                                    assert(ex == "+0***********************");
552                                    assert(ios.width() == 0);
553                                }
554                                ios.width(25);
555                                right(ios);
556                                {
557                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
558                                    std::string ex(str, iter.base());
559                                    assert(ex == "***********************+0");
560                                    assert(ios.width() == 0);
561                                }
562                                ios.width(25);
563                                internal(ios);
564                                {
565                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
566                                    std::string ex(str, iter.base());
567                                    assert(ex == "+***********************0");
568                                    assert(ios.width() == 0);
569                                }
570                            }
571                        }
572                        showpoint(ios);
573                        {
574                            ios.imbue(lc);
575                            {
576                                ios.width(0);
577                                {
578                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
579                                    std::string ex(str, iter.base());
580                                    assert(ex == "+0.");
581                                    assert(ios.width() == 0);
582                                }
583                                ios.width(25);
584                                left(ios);
585                                {
586                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
587                                    std::string ex(str, iter.base());
588                                    assert(ex == "+0.**********************");
589                                    assert(ios.width() == 0);
590                                }
591                                ios.width(25);
592                                right(ios);
593                                {
594                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
595                                    std::string ex(str, iter.base());
596                                    assert(ex == "**********************+0.");
597                                    assert(ios.width() == 0);
598                                }
599                                ios.width(25);
600                                internal(ios);
601                                {
602                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
603                                    std::string ex(str, iter.base());
604                                    assert(ex == "+**********************0.");
605                                    assert(ios.width() == 0);
606                                }
607                            }
608                            ios.imbue(lg);
609                            {
610                                ios.width(0);
611                                {
612                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
613                                    std::string ex(str, iter.base());
614                                    assert(ex == "+0;");
615                                    assert(ios.width() == 0);
616                                }
617                                ios.width(25);
618                                left(ios);
619                                {
620                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
621                                    std::string ex(str, iter.base());
622                                    assert(ex == "+0;**********************");
623                                    assert(ios.width() == 0);
624                                }
625                                ios.width(25);
626                                right(ios);
627                                {
628                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
629                                    std::string ex(str, iter.base());
630                                    assert(ex == "**********************+0;");
631                                    assert(ios.width() == 0);
632                                }
633                                ios.width(25);
634                                internal(ios);
635                                {
636                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
637                                    std::string ex(str, iter.base());
638                                    assert(ex == "+**********************0;");
639                                    assert(ios.width() == 0);
640                                }
641                            }
642                        }
643                    }
644                }
645            }
646            ios.precision(1);
647            {
648                nouppercase(ios);
649                {
650                    noshowpos(ios);
651                    {
652                        noshowpoint(ios);
653                        {
654                            ios.imbue(lc);
655                            {
656                                ios.width(0);
657                                {
658                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
659                                    std::string ex(str, iter.base());
660                                    assert(ex == "0");
661                                    assert(ios.width() == 0);
662                                }
663                                ios.width(25);
664                                left(ios);
665                                {
666                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
667                                    std::string ex(str, iter.base());
668                                    assert(ex == "0************************");
669                                    assert(ios.width() == 0);
670                                }
671                                ios.width(25);
672                                right(ios);
673                                {
674                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
675                                    std::string ex(str, iter.base());
676                                    assert(ex == "************************0");
677                                    assert(ios.width() == 0);
678                                }
679                                ios.width(25);
680                                internal(ios);
681                                {
682                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
683                                    std::string ex(str, iter.base());
684                                    assert(ex == "************************0");
685                                    assert(ios.width() == 0);
686                                }
687                            }
688                            ios.imbue(lg);
689                            {
690                                ios.width(0);
691                                {
692                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
693                                    std::string ex(str, iter.base());
694                                    assert(ex == "0");
695                                    assert(ios.width() == 0);
696                                }
697                                ios.width(25);
698                                left(ios);
699                                {
700                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
701                                    std::string ex(str, iter.base());
702                                    assert(ex == "0************************");
703                                    assert(ios.width() == 0);
704                                }
705                                ios.width(25);
706                                right(ios);
707                                {
708                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
709                                    std::string ex(str, iter.base());
710                                    assert(ex == "************************0");
711                                    assert(ios.width() == 0);
712                                }
713                                ios.width(25);
714                                internal(ios);
715                                {
716                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
717                                    std::string ex(str, iter.base());
718                                    assert(ex == "************************0");
719                                    assert(ios.width() == 0);
720                                }
721                            }
722                        }
723                        showpoint(ios);
724                        {
725                            ios.imbue(lc);
726                            {
727                                ios.width(0);
728                                {
729                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
730                                    std::string ex(str, iter.base());
731                                    assert(ex == "0.");
732                                    assert(ios.width() == 0);
733                                }
734                                ios.width(25);
735                                left(ios);
736                                {
737                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
738                                    std::string ex(str, iter.base());
739                                    assert(ex == "0.***********************");
740                                    assert(ios.width() == 0);
741                                }
742                                ios.width(25);
743                                right(ios);
744                                {
745                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
746                                    std::string ex(str, iter.base());
747                                    assert(ex == "***********************0.");
748                                    assert(ios.width() == 0);
749                                }
750                                ios.width(25);
751                                internal(ios);
752                                {
753                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
754                                    std::string ex(str, iter.base());
755                                    assert(ex == "***********************0.");
756                                    assert(ios.width() == 0);
757                                }
758                            }
759                            ios.imbue(lg);
760                            {
761                                ios.width(0);
762                                {
763                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
764                                    std::string ex(str, iter.base());
765                                    assert(ex == "0;");
766                                    assert(ios.width() == 0);
767                                }
768                                ios.width(25);
769                                left(ios);
770                                {
771                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
772                                    std::string ex(str, iter.base());
773                                    assert(ex == "0;***********************");
774                                    assert(ios.width() == 0);
775                                }
776                                ios.width(25);
777                                right(ios);
778                                {
779                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
780                                    std::string ex(str, iter.base());
781                                    assert(ex == "***********************0;");
782                                    assert(ios.width() == 0);
783                                }
784                                ios.width(25);
785                                internal(ios);
786                                {
787                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
788                                    std::string ex(str, iter.base());
789                                    assert(ex == "***********************0;");
790                                    assert(ios.width() == 0);
791                                }
792                            }
793                        }
794                    }
795                    showpos(ios);
796                    {
797                        noshowpoint(ios);
798                        {
799                            ios.imbue(lc);
800                            {
801                                ios.width(0);
802                                {
803                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
804                                    std::string ex(str, iter.base());
805                                    assert(ex == "+0");
806                                    assert(ios.width() == 0);
807                                }
808                                ios.width(25);
809                                left(ios);
810                                {
811                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
812                                    std::string ex(str, iter.base());
813                                    assert(ex == "+0***********************");
814                                    assert(ios.width() == 0);
815                                }
816                                ios.width(25);
817                                right(ios);
818                                {
819                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
820                                    std::string ex(str, iter.base());
821                                    assert(ex == "***********************+0");
822                                    assert(ios.width() == 0);
823                                }
824                                ios.width(25);
825                                internal(ios);
826                                {
827                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
828                                    std::string ex(str, iter.base());
829                                    assert(ex == "+***********************0");
830                                    assert(ios.width() == 0);
831                                }
832                            }
833                            ios.imbue(lg);
834                            {
835                                ios.width(0);
836                                {
837                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
838                                    std::string ex(str, iter.base());
839                                    assert(ex == "+0");
840                                    assert(ios.width() == 0);
841                                }
842                                ios.width(25);
843                                left(ios);
844                                {
845                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
846                                    std::string ex(str, iter.base());
847                                    assert(ex == "+0***********************");
848                                    assert(ios.width() == 0);
849                                }
850                                ios.width(25);
851                                right(ios);
852                                {
853                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
854                                    std::string ex(str, iter.base());
855                                    assert(ex == "***********************+0");
856                                    assert(ios.width() == 0);
857                                }
858                                ios.width(25);
859                                internal(ios);
860                                {
861                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
862                                    std::string ex(str, iter.base());
863                                    assert(ex == "+***********************0");
864                                    assert(ios.width() == 0);
865                                }
866                            }
867                        }
868                        showpoint(ios);
869                        {
870                            ios.imbue(lc);
871                            {
872                                ios.width(0);
873                                {
874                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
875                                    std::string ex(str, iter.base());
876                                    assert(ex == "+0.");
877                                    assert(ios.width() == 0);
878                                }
879                                ios.width(25);
880                                left(ios);
881                                {
882                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
883                                    std::string ex(str, iter.base());
884                                    assert(ex == "+0.**********************");
885                                    assert(ios.width() == 0);
886                                }
887                                ios.width(25);
888                                right(ios);
889                                {
890                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
891                                    std::string ex(str, iter.base());
892                                    assert(ex == "**********************+0.");
893                                    assert(ios.width() == 0);
894                                }
895                                ios.width(25);
896                                internal(ios);
897                                {
898                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
899                                    std::string ex(str, iter.base());
900                                    assert(ex == "+**********************0.");
901                                    assert(ios.width() == 0);
902                                }
903                            }
904                            ios.imbue(lg);
905                            {
906                                ios.width(0);
907                                {
908                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
909                                    std::string ex(str, iter.base());
910                                    assert(ex == "+0;");
911                                    assert(ios.width() == 0);
912                                }
913                                ios.width(25);
914                                left(ios);
915                                {
916                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
917                                    std::string ex(str, iter.base());
918                                    assert(ex == "+0;**********************");
919                                    assert(ios.width() == 0);
920                                }
921                                ios.width(25);
922                                right(ios);
923                                {
924                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
925                                    std::string ex(str, iter.base());
926                                    assert(ex == "**********************+0;");
927                                    assert(ios.width() == 0);
928                                }
929                                ios.width(25);
930                                internal(ios);
931                                {
932                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
933                                    std::string ex(str, iter.base());
934                                    assert(ex == "+**********************0;");
935                                    assert(ios.width() == 0);
936                                }
937                            }
938                        }
939                    }
940                }
941                uppercase(ios);
942                {
943                    noshowpos(ios);
944                    {
945                        noshowpoint(ios);
946                        {
947                            ios.imbue(lc);
948                            {
949                                ios.width(0);
950                                {
951                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
952                                    std::string ex(str, iter.base());
953                                    assert(ex == "0");
954                                    assert(ios.width() == 0);
955                                }
956                                ios.width(25);
957                                left(ios);
958                                {
959                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
960                                    std::string ex(str, iter.base());
961                                    assert(ex == "0************************");
962                                    assert(ios.width() == 0);
963                                }
964                                ios.width(25);
965                                right(ios);
966                                {
967                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
968                                    std::string ex(str, iter.base());
969                                    assert(ex == "************************0");
970                                    assert(ios.width() == 0);
971                                }
972                                ios.width(25);
973                                internal(ios);
974                                {
975                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
976                                    std::string ex(str, iter.base());
977                                    assert(ex == "************************0");
978                                    assert(ios.width() == 0);
979                                }
980                            }
981                            ios.imbue(lg);
982                            {
983                                ios.width(0);
984                                {
985                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
986                                    std::string ex(str, iter.base());
987                                    assert(ex == "0");
988                                    assert(ios.width() == 0);
989                                }
990                                ios.width(25);
991                                left(ios);
992                                {
993                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
994                                    std::string ex(str, iter.base());
995                                    assert(ex == "0************************");
996                                    assert(ios.width() == 0);
997                                }
998                                ios.width(25);
999                                right(ios);
1000                                {
1001                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1002                                    std::string ex(str, iter.base());
1003                                    assert(ex == "************************0");
1004                                    assert(ios.width() == 0);
1005                                }
1006                                ios.width(25);
1007                                internal(ios);
1008                                {
1009                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1010                                    std::string ex(str, iter.base());
1011                                    assert(ex == "************************0");
1012                                    assert(ios.width() == 0);
1013                                }
1014                            }
1015                        }
1016                        showpoint(ios);
1017                        {
1018                            ios.imbue(lc);
1019                            {
1020                                ios.width(0);
1021                                {
1022                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1023                                    std::string ex(str, iter.base());
1024                                    assert(ex == "0.");
1025                                    assert(ios.width() == 0);
1026                                }
1027                                ios.width(25);
1028                                left(ios);
1029                                {
1030                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1031                                    std::string ex(str, iter.base());
1032                                    assert(ex == "0.***********************");
1033                                    assert(ios.width() == 0);
1034                                }
1035                                ios.width(25);
1036                                right(ios);
1037                                {
1038                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1039                                    std::string ex(str, iter.base());
1040                                    assert(ex == "***********************0.");
1041                                    assert(ios.width() == 0);
1042                                }
1043                                ios.width(25);
1044                                internal(ios);
1045                                {
1046                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1047                                    std::string ex(str, iter.base());
1048                                    assert(ex == "***********************0.");
1049                                    assert(ios.width() == 0);
1050                                }
1051                            }
1052                            ios.imbue(lg);
1053                            {
1054                                ios.width(0);
1055                                {
1056                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1057                                    std::string ex(str, iter.base());
1058                                    assert(ex == "0;");
1059                                    assert(ios.width() == 0);
1060                                }
1061                                ios.width(25);
1062                                left(ios);
1063                                {
1064                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1065                                    std::string ex(str, iter.base());
1066                                    assert(ex == "0;***********************");
1067                                    assert(ios.width() == 0);
1068                                }
1069                                ios.width(25);
1070                                right(ios);
1071                                {
1072                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1073                                    std::string ex(str, iter.base());
1074                                    assert(ex == "***********************0;");
1075                                    assert(ios.width() == 0);
1076                                }
1077                                ios.width(25);
1078                                internal(ios);
1079                                {
1080                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1081                                    std::string ex(str, iter.base());
1082                                    assert(ex == "***********************0;");
1083                                    assert(ios.width() == 0);
1084                                }
1085                            }
1086                        }
1087                    }
1088                    showpos(ios);
1089                    {
1090                        noshowpoint(ios);
1091                        {
1092                            ios.imbue(lc);
1093                            {
1094                                ios.width(0);
1095                                {
1096                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1097                                    std::string ex(str, iter.base());
1098                                    assert(ex == "+0");
1099                                    assert(ios.width() == 0);
1100                                }
1101                                ios.width(25);
1102                                left(ios);
1103                                {
1104                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1105                                    std::string ex(str, iter.base());
1106                                    assert(ex == "+0***********************");
1107                                    assert(ios.width() == 0);
1108                                }
1109                                ios.width(25);
1110                                right(ios);
1111                                {
1112                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1113                                    std::string ex(str, iter.base());
1114                                    assert(ex == "***********************+0");
1115                                    assert(ios.width() == 0);
1116                                }
1117                                ios.width(25);
1118                                internal(ios);
1119                                {
1120                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1121                                    std::string ex(str, iter.base());
1122                                    assert(ex == "+***********************0");
1123                                    assert(ios.width() == 0);
1124                                }
1125                            }
1126                            ios.imbue(lg);
1127                            {
1128                                ios.width(0);
1129                                {
1130                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1131                                    std::string ex(str, iter.base());
1132                                    assert(ex == "+0");
1133                                    assert(ios.width() == 0);
1134                                }
1135                                ios.width(25);
1136                                left(ios);
1137                                {
1138                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1139                                    std::string ex(str, iter.base());
1140                                    assert(ex == "+0***********************");
1141                                    assert(ios.width() == 0);
1142                                }
1143                                ios.width(25);
1144                                right(ios);
1145                                {
1146                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1147                                    std::string ex(str, iter.base());
1148                                    assert(ex == "***********************+0");
1149                                    assert(ios.width() == 0);
1150                                }
1151                                ios.width(25);
1152                                internal(ios);
1153                                {
1154                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1155                                    std::string ex(str, iter.base());
1156                                    assert(ex == "+***********************0");
1157                                    assert(ios.width() == 0);
1158                                }
1159                            }
1160                        }
1161                        showpoint(ios);
1162                        {
1163                            ios.imbue(lc);
1164                            {
1165                                ios.width(0);
1166                                {
1167                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1168                                    std::string ex(str, iter.base());
1169                                    assert(ex == "+0.");
1170                                    assert(ios.width() == 0);
1171                                }
1172                                ios.width(25);
1173                                left(ios);
1174                                {
1175                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1176                                    std::string ex(str, iter.base());
1177                                    assert(ex == "+0.**********************");
1178                                    assert(ios.width() == 0);
1179                                }
1180                                ios.width(25);
1181                                right(ios);
1182                                {
1183                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1184                                    std::string ex(str, iter.base());
1185                                    assert(ex == "**********************+0.");
1186                                    assert(ios.width() == 0);
1187                                }
1188                                ios.width(25);
1189                                internal(ios);
1190                                {
1191                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1192                                    std::string ex(str, iter.base());
1193                                    assert(ex == "+**********************0.");
1194                                    assert(ios.width() == 0);
1195                                }
1196                            }
1197                            ios.imbue(lg);
1198                            {
1199                                ios.width(0);
1200                                {
1201                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1202                                    std::string ex(str, iter.base());
1203                                    assert(ex == "+0;");
1204                                    assert(ios.width() == 0);
1205                                }
1206                                ios.width(25);
1207                                left(ios);
1208                                {
1209                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1210                                    std::string ex(str, iter.base());
1211                                    assert(ex == "+0;**********************");
1212                                    assert(ios.width() == 0);
1213                                }
1214                                ios.width(25);
1215                                right(ios);
1216                                {
1217                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1218                                    std::string ex(str, iter.base());
1219                                    assert(ex == "**********************+0;");
1220                                    assert(ios.width() == 0);
1221                                }
1222                                ios.width(25);
1223                                internal(ios);
1224                                {
1225                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1226                                    std::string ex(str, iter.base());
1227                                    assert(ex == "+**********************0;");
1228                                    assert(ios.width() == 0);
1229                                }
1230                            }
1231                        }
1232                    }
1233                }
1234            }
1235            ios.precision(6);
1236            {
1237                nouppercase(ios);
1238                {
1239                    noshowpos(ios);
1240                    {
1241                        noshowpoint(ios);
1242                        {
1243                            ios.imbue(lc);
1244                            {
1245                                ios.width(0);
1246                                {
1247                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1248                                    std::string ex(str, iter.base());
1249                                    assert(ex == "0");
1250                                    assert(ios.width() == 0);
1251                                }
1252                                ios.width(25);
1253                                left(ios);
1254                                {
1255                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1256                                    std::string ex(str, iter.base());
1257                                    assert(ex == "0************************");
1258                                    assert(ios.width() == 0);
1259                                }
1260                                ios.width(25);
1261                                right(ios);
1262                                {
1263                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1264                                    std::string ex(str, iter.base());
1265                                    assert(ex == "************************0");
1266                                    assert(ios.width() == 0);
1267                                }
1268                                ios.width(25);
1269                                internal(ios);
1270                                {
1271                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1272                                    std::string ex(str, iter.base());
1273                                    assert(ex == "************************0");
1274                                    assert(ios.width() == 0);
1275                                }
1276                            }
1277                            ios.imbue(lg);
1278                            {
1279                                ios.width(0);
1280                                {
1281                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1282                                    std::string ex(str, iter.base());
1283                                    assert(ex == "0");
1284                                    assert(ios.width() == 0);
1285                                }
1286                                ios.width(25);
1287                                left(ios);
1288                                {
1289                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1290                                    std::string ex(str, iter.base());
1291                                    assert(ex == "0************************");
1292                                    assert(ios.width() == 0);
1293                                }
1294                                ios.width(25);
1295                                right(ios);
1296                                {
1297                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1298                                    std::string ex(str, iter.base());
1299                                    assert(ex == "************************0");
1300                                    assert(ios.width() == 0);
1301                                }
1302                                ios.width(25);
1303                                internal(ios);
1304                                {
1305                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1306                                    std::string ex(str, iter.base());
1307                                    assert(ex == "************************0");
1308                                    assert(ios.width() == 0);
1309                                }
1310                            }
1311                        }
1312                        showpoint(ios);
1313                        {
1314                            ios.imbue(lc);
1315                            {
1316                                ios.width(0);
1317                                {
1318                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1319                                    std::string ex(str, iter.base());
1320                                    assert(ex == "0.00000");
1321                                    assert(ios.width() == 0);
1322                                }
1323                                ios.width(25);
1324                                left(ios);
1325                                {
1326                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1327                                    std::string ex(str, iter.base());
1328                                    assert(ex == "0.00000******************");
1329                                    assert(ios.width() == 0);
1330                                }
1331                                ios.width(25);
1332                                right(ios);
1333                                {
1334                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1335                                    std::string ex(str, iter.base());
1336                                    assert(ex == "******************0.00000");
1337                                    assert(ios.width() == 0);
1338                                }
1339                                ios.width(25);
1340                                internal(ios);
1341                                {
1342                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1343                                    std::string ex(str, iter.base());
1344                                    assert(ex == "******************0.00000");
1345                                    assert(ios.width() == 0);
1346                                }
1347                            }
1348                            ios.imbue(lg);
1349                            {
1350                                ios.width(0);
1351                                {
1352                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1353                                    std::string ex(str, iter.base());
1354                                    assert(ex == "0;00000");
1355                                    assert(ios.width() == 0);
1356                                }
1357                                ios.width(25);
1358                                left(ios);
1359                                {
1360                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1361                                    std::string ex(str, iter.base());
1362                                    assert(ex == "0;00000******************");
1363                                    assert(ios.width() == 0);
1364                                }
1365                                ios.width(25);
1366                                right(ios);
1367                                {
1368                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1369                                    std::string ex(str, iter.base());
1370                                    assert(ex == "******************0;00000");
1371                                    assert(ios.width() == 0);
1372                                }
1373                                ios.width(25);
1374                                internal(ios);
1375                                {
1376                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1377                                    std::string ex(str, iter.base());
1378                                    assert(ex == "******************0;00000");
1379                                    assert(ios.width() == 0);
1380                                }
1381                            }
1382                        }
1383                    }
1384                    showpos(ios);
1385                    {
1386                        noshowpoint(ios);
1387                        {
1388                            ios.imbue(lc);
1389                            {
1390                                ios.width(0);
1391                                {
1392                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1393                                    std::string ex(str, iter.base());
1394                                    assert(ex == "+0");
1395                                    assert(ios.width() == 0);
1396                                }
1397                                ios.width(25);
1398                                left(ios);
1399                                {
1400                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1401                                    std::string ex(str, iter.base());
1402                                    assert(ex == "+0***********************");
1403                                    assert(ios.width() == 0);
1404                                }
1405                                ios.width(25);
1406                                right(ios);
1407                                {
1408                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1409                                    std::string ex(str, iter.base());
1410                                    assert(ex == "***********************+0");
1411                                    assert(ios.width() == 0);
1412                                }
1413                                ios.width(25);
1414                                internal(ios);
1415                                {
1416                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1417                                    std::string ex(str, iter.base());
1418                                    assert(ex == "+***********************0");
1419                                    assert(ios.width() == 0);
1420                                }
1421                            }
1422                            ios.imbue(lg);
1423                            {
1424                                ios.width(0);
1425                                {
1426                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1427                                    std::string ex(str, iter.base());
1428                                    assert(ex == "+0");
1429                                    assert(ios.width() == 0);
1430                                }
1431                                ios.width(25);
1432                                left(ios);
1433                                {
1434                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1435                                    std::string ex(str, iter.base());
1436                                    assert(ex == "+0***********************");
1437                                    assert(ios.width() == 0);
1438                                }
1439                                ios.width(25);
1440                                right(ios);
1441                                {
1442                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1443                                    std::string ex(str, iter.base());
1444                                    assert(ex == "***********************+0");
1445                                    assert(ios.width() == 0);
1446                                }
1447                                ios.width(25);
1448                                internal(ios);
1449                                {
1450                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1451                                    std::string ex(str, iter.base());
1452                                    assert(ex == "+***********************0");
1453                                    assert(ios.width() == 0);
1454                                }
1455                            }
1456                        }
1457                        showpoint(ios);
1458                        {
1459                            ios.imbue(lc);
1460                            {
1461                                ios.width(0);
1462                                {
1463                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1464                                    std::string ex(str, iter.base());
1465                                    assert(ex == "+0.00000");
1466                                    assert(ios.width() == 0);
1467                                }
1468                                ios.width(25);
1469                                left(ios);
1470                                {
1471                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1472                                    std::string ex(str, iter.base());
1473                                    assert(ex == "+0.00000*****************");
1474                                    assert(ios.width() == 0);
1475                                }
1476                                ios.width(25);
1477                                right(ios);
1478                                {
1479                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1480                                    std::string ex(str, iter.base());
1481                                    assert(ex == "*****************+0.00000");
1482                                    assert(ios.width() == 0);
1483                                }
1484                                ios.width(25);
1485                                internal(ios);
1486                                {
1487                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1488                                    std::string ex(str, iter.base());
1489                                    assert(ex == "+*****************0.00000");
1490                                    assert(ios.width() == 0);
1491                                }
1492                            }
1493                            ios.imbue(lg);
1494                            {
1495                                ios.width(0);
1496                                {
1497                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1498                                    std::string ex(str, iter.base());
1499                                    assert(ex == "+0;00000");
1500                                    assert(ios.width() == 0);
1501                                }
1502                                ios.width(25);
1503                                left(ios);
1504                                {
1505                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1506                                    std::string ex(str, iter.base());
1507                                    assert(ex == "+0;00000*****************");
1508                                    assert(ios.width() == 0);
1509                                }
1510                                ios.width(25);
1511                                right(ios);
1512                                {
1513                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1514                                    std::string ex(str, iter.base());
1515                                    assert(ex == "*****************+0;00000");
1516                                    assert(ios.width() == 0);
1517                                }
1518                                ios.width(25);
1519                                internal(ios);
1520                                {
1521                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1522                                    std::string ex(str, iter.base());
1523                                    assert(ex == "+*****************0;00000");
1524                                    assert(ios.width() == 0);
1525                                }
1526                            }
1527                        }
1528                    }
1529                }
1530                uppercase(ios);
1531                {
1532                    noshowpos(ios);
1533                    {
1534                        noshowpoint(ios);
1535                        {
1536                            ios.imbue(lc);
1537                            {
1538                                ios.width(0);
1539                                {
1540                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1541                                    std::string ex(str, iter.base());
1542                                    assert(ex == "0");
1543                                    assert(ios.width() == 0);
1544                                }
1545                                ios.width(25);
1546                                left(ios);
1547                                {
1548                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1549                                    std::string ex(str, iter.base());
1550                                    assert(ex == "0************************");
1551                                    assert(ios.width() == 0);
1552                                }
1553                                ios.width(25);
1554                                right(ios);
1555                                {
1556                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1557                                    std::string ex(str, iter.base());
1558                                    assert(ex == "************************0");
1559                                    assert(ios.width() == 0);
1560                                }
1561                                ios.width(25);
1562                                internal(ios);
1563                                {
1564                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1565                                    std::string ex(str, iter.base());
1566                                    assert(ex == "************************0");
1567                                    assert(ios.width() == 0);
1568                                }
1569                            }
1570                            ios.imbue(lg);
1571                            {
1572                                ios.width(0);
1573                                {
1574                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1575                                    std::string ex(str, iter.base());
1576                                    assert(ex == "0");
1577                                    assert(ios.width() == 0);
1578                                }
1579                                ios.width(25);
1580                                left(ios);
1581                                {
1582                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1583                                    std::string ex(str, iter.base());
1584                                    assert(ex == "0************************");
1585                                    assert(ios.width() == 0);
1586                                }
1587                                ios.width(25);
1588                                right(ios);
1589                                {
1590                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1591                                    std::string ex(str, iter.base());
1592                                    assert(ex == "************************0");
1593                                    assert(ios.width() == 0);
1594                                }
1595                                ios.width(25);
1596                                internal(ios);
1597                                {
1598                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1599                                    std::string ex(str, iter.base());
1600                                    assert(ex == "************************0");
1601                                    assert(ios.width() == 0);
1602                                }
1603                            }
1604                        }
1605                        showpoint(ios);
1606                        {
1607                            ios.imbue(lc);
1608                            {
1609                                ios.width(0);
1610                                {
1611                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1612                                    std::string ex(str, iter.base());
1613                                    assert(ex == "0.00000");
1614                                    assert(ios.width() == 0);
1615                                }
1616                                ios.width(25);
1617                                left(ios);
1618                                {
1619                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1620                                    std::string ex(str, iter.base());
1621                                    assert(ex == "0.00000******************");
1622                                    assert(ios.width() == 0);
1623                                }
1624                                ios.width(25);
1625                                right(ios);
1626                                {
1627                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1628                                    std::string ex(str, iter.base());
1629                                    assert(ex == "******************0.00000");
1630                                    assert(ios.width() == 0);
1631                                }
1632                                ios.width(25);
1633                                internal(ios);
1634                                {
1635                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1636                                    std::string ex(str, iter.base());
1637                                    assert(ex == "******************0.00000");
1638                                    assert(ios.width() == 0);
1639                                }
1640                            }
1641                            ios.imbue(lg);
1642                            {
1643                                ios.width(0);
1644                                {
1645                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1646                                    std::string ex(str, iter.base());
1647                                    assert(ex == "0;00000");
1648                                    assert(ios.width() == 0);
1649                                }
1650                                ios.width(25);
1651                                left(ios);
1652                                {
1653                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1654                                    std::string ex(str, iter.base());
1655                                    assert(ex == "0;00000******************");
1656                                    assert(ios.width() == 0);
1657                                }
1658                                ios.width(25);
1659                                right(ios);
1660                                {
1661                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1662                                    std::string ex(str, iter.base());
1663                                    assert(ex == "******************0;00000");
1664                                    assert(ios.width() == 0);
1665                                }
1666                                ios.width(25);
1667                                internal(ios);
1668                                {
1669                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1670                                    std::string ex(str, iter.base());
1671                                    assert(ex == "******************0;00000");
1672                                    assert(ios.width() == 0);
1673                                }
1674                            }
1675                        }
1676                    }
1677                    showpos(ios);
1678                    {
1679                        noshowpoint(ios);
1680                        {
1681                            ios.imbue(lc);
1682                            {
1683                                ios.width(0);
1684                                {
1685                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1686                                    std::string ex(str, iter.base());
1687                                    assert(ex == "+0");
1688                                    assert(ios.width() == 0);
1689                                }
1690                                ios.width(25);
1691                                left(ios);
1692                                {
1693                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1694                                    std::string ex(str, iter.base());
1695                                    assert(ex == "+0***********************");
1696                                    assert(ios.width() == 0);
1697                                }
1698                                ios.width(25);
1699                                right(ios);
1700                                {
1701                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1702                                    std::string ex(str, iter.base());
1703                                    assert(ex == "***********************+0");
1704                                    assert(ios.width() == 0);
1705                                }
1706                                ios.width(25);
1707                                internal(ios);
1708                                {
1709                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1710                                    std::string ex(str, iter.base());
1711                                    assert(ex == "+***********************0");
1712                                    assert(ios.width() == 0);
1713                                }
1714                            }
1715                            ios.imbue(lg);
1716                            {
1717                                ios.width(0);
1718                                {
1719                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1720                                    std::string ex(str, iter.base());
1721                                    assert(ex == "+0");
1722                                    assert(ios.width() == 0);
1723                                }
1724                                ios.width(25);
1725                                left(ios);
1726                                {
1727                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1728                                    std::string ex(str, iter.base());
1729                                    assert(ex == "+0***********************");
1730                                    assert(ios.width() == 0);
1731                                }
1732                                ios.width(25);
1733                                right(ios);
1734                                {
1735                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1736                                    std::string ex(str, iter.base());
1737                                    assert(ex == "***********************+0");
1738                                    assert(ios.width() == 0);
1739                                }
1740                                ios.width(25);
1741                                internal(ios);
1742                                {
1743                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1744                                    std::string ex(str, iter.base());
1745                                    assert(ex == "+***********************0");
1746                                    assert(ios.width() == 0);
1747                                }
1748                            }
1749                        }
1750                        showpoint(ios);
1751                        {
1752                            ios.imbue(lc);
1753                            {
1754                                ios.width(0);
1755                                {
1756                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1757                                    std::string ex(str, iter.base());
1758                                    assert(ex == "+0.00000");
1759                                    assert(ios.width() == 0);
1760                                }
1761                                ios.width(25);
1762                                left(ios);
1763                                {
1764                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1765                                    std::string ex(str, iter.base());
1766                                    assert(ex == "+0.00000*****************");
1767                                    assert(ios.width() == 0);
1768                                }
1769                                ios.width(25);
1770                                right(ios);
1771                                {
1772                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1773                                    std::string ex(str, iter.base());
1774                                    assert(ex == "*****************+0.00000");
1775                                    assert(ios.width() == 0);
1776                                }
1777                                ios.width(25);
1778                                internal(ios);
1779                                {
1780                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1781                                    std::string ex(str, iter.base());
1782                                    assert(ex == "+*****************0.00000");
1783                                    assert(ios.width() == 0);
1784                                }
1785                            }
1786                            ios.imbue(lg);
1787                            {
1788                                ios.width(0);
1789                                {
1790                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1791                                    std::string ex(str, iter.base());
1792                                    assert(ex == "+0;00000");
1793                                    assert(ios.width() == 0);
1794                                }
1795                                ios.width(25);
1796                                left(ios);
1797                                {
1798                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1799                                    std::string ex(str, iter.base());
1800                                    assert(ex == "+0;00000*****************");
1801                                    assert(ios.width() == 0);
1802                                }
1803                                ios.width(25);
1804                                right(ios);
1805                                {
1806                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1807                                    std::string ex(str, iter.base());
1808                                    assert(ex == "*****************+0;00000");
1809                                    assert(ios.width() == 0);
1810                                }
1811                                ios.width(25);
1812                                internal(ios);
1813                                {
1814                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1815                                    std::string ex(str, iter.base());
1816                                    assert(ex == "+*****************0;00000");
1817                                    assert(ios.width() == 0);
1818                                }
1819                            }
1820                        }
1821                    }
1822                }
1823            }
1824            ios.precision(16);
1825            {
1826                nouppercase(ios);
1827                {
1828                    noshowpos(ios);
1829                    {
1830                        noshowpoint(ios);
1831                        {
1832                            ios.imbue(lc);
1833                            {
1834                                ios.width(0);
1835                                {
1836                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1837                                    std::string ex(str, iter.base());
1838                                    assert(ex == "0");
1839                                    assert(ios.width() == 0);
1840                                }
1841                                ios.width(25);
1842                                left(ios);
1843                                {
1844                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1845                                    std::string ex(str, iter.base());
1846                                    assert(ex == "0************************");
1847                                    assert(ios.width() == 0);
1848                                }
1849                                ios.width(25);
1850                                right(ios);
1851                                {
1852                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1853                                    std::string ex(str, iter.base());
1854                                    assert(ex == "************************0");
1855                                    assert(ios.width() == 0);
1856                                }
1857                                ios.width(25);
1858                                internal(ios);
1859                                {
1860                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1861                                    std::string ex(str, iter.base());
1862                                    assert(ex == "************************0");
1863                                    assert(ios.width() == 0);
1864                                }
1865                            }
1866                            ios.imbue(lg);
1867                            {
1868                                ios.width(0);
1869                                {
1870                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1871                                    std::string ex(str, iter.base());
1872                                    assert(ex == "0");
1873                                    assert(ios.width() == 0);
1874                                }
1875                                ios.width(25);
1876                                left(ios);
1877                                {
1878                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1879                                    std::string ex(str, iter.base());
1880                                    assert(ex == "0************************");
1881                                    assert(ios.width() == 0);
1882                                }
1883                                ios.width(25);
1884                                right(ios);
1885                                {
1886                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1887                                    std::string ex(str, iter.base());
1888                                    assert(ex == "************************0");
1889                                    assert(ios.width() == 0);
1890                                }
1891                                ios.width(25);
1892                                internal(ios);
1893                                {
1894                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1895                                    std::string ex(str, iter.base());
1896                                    assert(ex == "************************0");
1897                                    assert(ios.width() == 0);
1898                                }
1899                            }
1900                        }
1901                        showpoint(ios);
1902                        {
1903                            ios.imbue(lc);
1904                            {
1905                                ios.width(0);
1906                                {
1907                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1908                                    std::string ex(str, iter.base());
1909                                    assert(ex == "0.000000000000000");
1910                                    assert(ios.width() == 0);
1911                                }
1912                                ios.width(25);
1913                                left(ios);
1914                                {
1915                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1916                                    std::string ex(str, iter.base());
1917                                    assert(ex == "0.000000000000000********");
1918                                    assert(ios.width() == 0);
1919                                }
1920                                ios.width(25);
1921                                right(ios);
1922                                {
1923                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1924                                    std::string ex(str, iter.base());
1925                                    assert(ex == "********0.000000000000000");
1926                                    assert(ios.width() == 0);
1927                                }
1928                                ios.width(25);
1929                                internal(ios);
1930                                {
1931                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1932                                    std::string ex(str, iter.base());
1933                                    assert(ex == "********0.000000000000000");
1934                                    assert(ios.width() == 0);
1935                                }
1936                            }
1937                            ios.imbue(lg);
1938                            {
1939                                ios.width(0);
1940                                {
1941                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1942                                    std::string ex(str, iter.base());
1943                                    assert(ex == "0;000000000000000");
1944                                    assert(ios.width() == 0);
1945                                }
1946                                ios.width(25);
1947                                left(ios);
1948                                {
1949                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1950                                    std::string ex(str, iter.base());
1951                                    assert(ex == "0;000000000000000********");
1952                                    assert(ios.width() == 0);
1953                                }
1954                                ios.width(25);
1955                                right(ios);
1956                                {
1957                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1958                                    std::string ex(str, iter.base());
1959                                    assert(ex == "********0;000000000000000");
1960                                    assert(ios.width() == 0);
1961                                }
1962                                ios.width(25);
1963                                internal(ios);
1964                                {
1965                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1966                                    std::string ex(str, iter.base());
1967                                    assert(ex == "********0;000000000000000");
1968                                    assert(ios.width() == 0);
1969                                }
1970                            }
1971                        }
1972                    }
1973                    showpos(ios);
1974                    {
1975                        noshowpoint(ios);
1976                        {
1977                            ios.imbue(lc);
1978                            {
1979                                ios.width(0);
1980                                {
1981                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1982                                    std::string ex(str, iter.base());
1983                                    assert(ex == "+0");
1984                                    assert(ios.width() == 0);
1985                                }
1986                                ios.width(25);
1987                                left(ios);
1988                                {
1989                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1990                                    std::string ex(str, iter.base());
1991                                    assert(ex == "+0***********************");
1992                                    assert(ios.width() == 0);
1993                                }
1994                                ios.width(25);
1995                                right(ios);
1996                                {
1997                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
1998                                    std::string ex(str, iter.base());
1999                                    assert(ex == "***********************+0");
2000                                    assert(ios.width() == 0);
2001                                }
2002                                ios.width(25);
2003                                internal(ios);
2004                                {
2005                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2006                                    std::string ex(str, iter.base());
2007                                    assert(ex == "+***********************0");
2008                                    assert(ios.width() == 0);
2009                                }
2010                            }
2011                            ios.imbue(lg);
2012                            {
2013                                ios.width(0);
2014                                {
2015                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2016                                    std::string ex(str, iter.base());
2017                                    assert(ex == "+0");
2018                                    assert(ios.width() == 0);
2019                                }
2020                                ios.width(25);
2021                                left(ios);
2022                                {
2023                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2024                                    std::string ex(str, iter.base());
2025                                    assert(ex == "+0***********************");
2026                                    assert(ios.width() == 0);
2027                                }
2028                                ios.width(25);
2029                                right(ios);
2030                                {
2031                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2032                                    std::string ex(str, iter.base());
2033                                    assert(ex == "***********************+0");
2034                                    assert(ios.width() == 0);
2035                                }
2036                                ios.width(25);
2037                                internal(ios);
2038                                {
2039                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2040                                    std::string ex(str, iter.base());
2041                                    assert(ex == "+***********************0");
2042                                    assert(ios.width() == 0);
2043                                }
2044                            }
2045                        }
2046                        showpoint(ios);
2047                        {
2048                            ios.imbue(lc);
2049                            {
2050                                ios.width(0);
2051                                {
2052                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2053                                    std::string ex(str, iter.base());
2054                                    assert(ex == "+0.000000000000000");
2055                                    assert(ios.width() == 0);
2056                                }
2057                                ios.width(25);
2058                                left(ios);
2059                                {
2060                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2061                                    std::string ex(str, iter.base());
2062                                    assert(ex == "+0.000000000000000*******");
2063                                    assert(ios.width() == 0);
2064                                }
2065                                ios.width(25);
2066                                right(ios);
2067                                {
2068                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2069                                    std::string ex(str, iter.base());
2070                                    assert(ex == "*******+0.000000000000000");
2071                                    assert(ios.width() == 0);
2072                                }
2073                                ios.width(25);
2074                                internal(ios);
2075                                {
2076                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2077                                    std::string ex(str, iter.base());
2078                                    assert(ex == "+*******0.000000000000000");
2079                                    assert(ios.width() == 0);
2080                                }
2081                            }
2082                            ios.imbue(lg);
2083                            {
2084                                ios.width(0);
2085                                {
2086                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2087                                    std::string ex(str, iter.base());
2088                                    assert(ex == "+0;000000000000000");
2089                                    assert(ios.width() == 0);
2090                                }
2091                                ios.width(25);
2092                                left(ios);
2093                                {
2094                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2095                                    std::string ex(str, iter.base());
2096                                    assert(ex == "+0;000000000000000*******");
2097                                    assert(ios.width() == 0);
2098                                }
2099                                ios.width(25);
2100                                right(ios);
2101                                {
2102                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2103                                    std::string ex(str, iter.base());
2104                                    assert(ex == "*******+0;000000000000000");
2105                                    assert(ios.width() == 0);
2106                                }
2107                                ios.width(25);
2108                                internal(ios);
2109                                {
2110                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2111                                    std::string ex(str, iter.base());
2112                                    assert(ex == "+*******0;000000000000000");
2113                                    assert(ios.width() == 0);
2114                                }
2115                            }
2116                        }
2117                    }
2118                }
2119                uppercase(ios);
2120                {
2121                    noshowpos(ios);
2122                    {
2123                        noshowpoint(ios);
2124                        {
2125                            ios.imbue(lc);
2126                            {
2127                                ios.width(0);
2128                                {
2129                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2130                                    std::string ex(str, iter.base());
2131                                    assert(ex == "0");
2132                                    assert(ios.width() == 0);
2133                                }
2134                                ios.width(25);
2135                                left(ios);
2136                                {
2137                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2138                                    std::string ex(str, iter.base());
2139                                    assert(ex == "0************************");
2140                                    assert(ios.width() == 0);
2141                                }
2142                                ios.width(25);
2143                                right(ios);
2144                                {
2145                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2146                                    std::string ex(str, iter.base());
2147                                    assert(ex == "************************0");
2148                                    assert(ios.width() == 0);
2149                                }
2150                                ios.width(25);
2151                                internal(ios);
2152                                {
2153                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2154                                    std::string ex(str, iter.base());
2155                                    assert(ex == "************************0");
2156                                    assert(ios.width() == 0);
2157                                }
2158                            }
2159                            ios.imbue(lg);
2160                            {
2161                                ios.width(0);
2162                                {
2163                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2164                                    std::string ex(str, iter.base());
2165                                    assert(ex == "0");
2166                                    assert(ios.width() == 0);
2167                                }
2168                                ios.width(25);
2169                                left(ios);
2170                                {
2171                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2172                                    std::string ex(str, iter.base());
2173                                    assert(ex == "0************************");
2174                                    assert(ios.width() == 0);
2175                                }
2176                                ios.width(25);
2177                                right(ios);
2178                                {
2179                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2180                                    std::string ex(str, iter.base());
2181                                    assert(ex == "************************0");
2182                                    assert(ios.width() == 0);
2183                                }
2184                                ios.width(25);
2185                                internal(ios);
2186                                {
2187                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2188                                    std::string ex(str, iter.base());
2189                                    assert(ex == "************************0");
2190                                    assert(ios.width() == 0);
2191                                }
2192                            }
2193                        }
2194                        showpoint(ios);
2195                        {
2196                            ios.imbue(lc);
2197                            {
2198                                ios.width(0);
2199                                {
2200                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2201                                    std::string ex(str, iter.base());
2202                                    assert(ex == "0.000000000000000");
2203                                    assert(ios.width() == 0);
2204                                }
2205                                ios.width(25);
2206                                left(ios);
2207                                {
2208                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2209                                    std::string ex(str, iter.base());
2210                                    assert(ex == "0.000000000000000********");
2211                                    assert(ios.width() == 0);
2212                                }
2213                                ios.width(25);
2214                                right(ios);
2215                                {
2216                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2217                                    std::string ex(str, iter.base());
2218                                    assert(ex == "********0.000000000000000");
2219                                    assert(ios.width() == 0);
2220                                }
2221                                ios.width(25);
2222                                internal(ios);
2223                                {
2224                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2225                                    std::string ex(str, iter.base());
2226                                    assert(ex == "********0.000000000000000");
2227                                    assert(ios.width() == 0);
2228                                }
2229                            }
2230                            ios.imbue(lg);
2231                            {
2232                                ios.width(0);
2233                                {
2234                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2235                                    std::string ex(str, iter.base());
2236                                    assert(ex == "0;000000000000000");
2237                                    assert(ios.width() == 0);
2238                                }
2239                                ios.width(25);
2240                                left(ios);
2241                                {
2242                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2243                                    std::string ex(str, iter.base());
2244                                    assert(ex == "0;000000000000000********");
2245                                    assert(ios.width() == 0);
2246                                }
2247                                ios.width(25);
2248                                right(ios);
2249                                {
2250                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2251                                    std::string ex(str, iter.base());
2252                                    assert(ex == "********0;000000000000000");
2253                                    assert(ios.width() == 0);
2254                                }
2255                                ios.width(25);
2256                                internal(ios);
2257                                {
2258                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2259                                    std::string ex(str, iter.base());
2260                                    assert(ex == "********0;000000000000000");
2261                                    assert(ios.width() == 0);
2262                                }
2263                            }
2264                        }
2265                    }
2266                    showpos(ios);
2267                    {
2268                        noshowpoint(ios);
2269                        {
2270                            ios.imbue(lc);
2271                            {
2272                                ios.width(0);
2273                                {
2274                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2275                                    std::string ex(str, iter.base());
2276                                    assert(ex == "+0");
2277                                    assert(ios.width() == 0);
2278                                }
2279                                ios.width(25);
2280                                left(ios);
2281                                {
2282                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2283                                    std::string ex(str, iter.base());
2284                                    assert(ex == "+0***********************");
2285                                    assert(ios.width() == 0);
2286                                }
2287                                ios.width(25);
2288                                right(ios);
2289                                {
2290                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2291                                    std::string ex(str, iter.base());
2292                                    assert(ex == "***********************+0");
2293                                    assert(ios.width() == 0);
2294                                }
2295                                ios.width(25);
2296                                internal(ios);
2297                                {
2298                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2299                                    std::string ex(str, iter.base());
2300                                    assert(ex == "+***********************0");
2301                                    assert(ios.width() == 0);
2302                                }
2303                            }
2304                            ios.imbue(lg);
2305                            {
2306                                ios.width(0);
2307                                {
2308                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2309                                    std::string ex(str, iter.base());
2310                                    assert(ex == "+0");
2311                                    assert(ios.width() == 0);
2312                                }
2313                                ios.width(25);
2314                                left(ios);
2315                                {
2316                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2317                                    std::string ex(str, iter.base());
2318                                    assert(ex == "+0***********************");
2319                                    assert(ios.width() == 0);
2320                                }
2321                                ios.width(25);
2322                                right(ios);
2323                                {
2324                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2325                                    std::string ex(str, iter.base());
2326                                    assert(ex == "***********************+0");
2327                                    assert(ios.width() == 0);
2328                                }
2329                                ios.width(25);
2330                                internal(ios);
2331                                {
2332                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2333                                    std::string ex(str, iter.base());
2334                                    assert(ex == "+***********************0");
2335                                    assert(ios.width() == 0);
2336                                }
2337                            }
2338                        }
2339                        showpoint(ios);
2340                        {
2341                            ios.imbue(lc);
2342                            {
2343                                ios.width(0);
2344                                {
2345                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2346                                    std::string ex(str, iter.base());
2347                                    assert(ex == "+0.000000000000000");
2348                                    assert(ios.width() == 0);
2349                                }
2350                                ios.width(25);
2351                                left(ios);
2352                                {
2353                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2354                                    std::string ex(str, iter.base());
2355                                    assert(ex == "+0.000000000000000*******");
2356                                    assert(ios.width() == 0);
2357                                }
2358                                ios.width(25);
2359                                right(ios);
2360                                {
2361                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2362                                    std::string ex(str, iter.base());
2363                                    assert(ex == "*******+0.000000000000000");
2364                                    assert(ios.width() == 0);
2365                                }
2366                                ios.width(25);
2367                                internal(ios);
2368                                {
2369                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2370                                    std::string ex(str, iter.base());
2371                                    assert(ex == "+*******0.000000000000000");
2372                                    assert(ios.width() == 0);
2373                                }
2374                            }
2375                            ios.imbue(lg);
2376                            {
2377                                ios.width(0);
2378                                {
2379                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2380                                    std::string ex(str, iter.base());
2381                                    assert(ex == "+0;000000000000000");
2382                                    assert(ios.width() == 0);
2383                                }
2384                                ios.width(25);
2385                                left(ios);
2386                                {
2387                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2388                                    std::string ex(str, iter.base());
2389                                    assert(ex == "+0;000000000000000*******");
2390                                    assert(ios.width() == 0);
2391                                }
2392                                ios.width(25);
2393                                right(ios);
2394                                {
2395                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2396                                    std::string ex(str, iter.base());
2397                                    assert(ex == "*******+0;000000000000000");
2398                                    assert(ios.width() == 0);
2399                                }
2400                                ios.width(25);
2401                                internal(ios);
2402                                {
2403                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2404                                    std::string ex(str, iter.base());
2405                                    assert(ex == "+*******0;000000000000000");
2406                                    assert(ios.width() == 0);
2407                                }
2408                            }
2409                        }
2410                    }
2411                }
2412            }
2413            ios.precision(60);
2414            {
2415                nouppercase(ios);
2416                {
2417                    noshowpos(ios);
2418                    {
2419                        noshowpoint(ios);
2420                        {
2421                            ios.imbue(lc);
2422                            {
2423                                ios.width(0);
2424                                {
2425                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2426                                    std::string ex(str, iter.base());
2427                                    assert(ex == "0");
2428                                    assert(ios.width() == 0);
2429                                }
2430                                ios.width(25);
2431                                left(ios);
2432                                {
2433                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2434                                    std::string ex(str, iter.base());
2435                                    assert(ex == "0************************");
2436                                    assert(ios.width() == 0);
2437                                }
2438                                ios.width(25);
2439                                right(ios);
2440                                {
2441                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2442                                    std::string ex(str, iter.base());
2443                                    assert(ex == "************************0");
2444                                    assert(ios.width() == 0);
2445                                }
2446                                ios.width(25);
2447                                internal(ios);
2448                                {
2449                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2450                                    std::string ex(str, iter.base());
2451                                    assert(ex == "************************0");
2452                                    assert(ios.width() == 0);
2453                                }
2454                            }
2455                            ios.imbue(lg);
2456                            {
2457                                ios.width(0);
2458                                {
2459                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2460                                    std::string ex(str, iter.base());
2461                                    assert(ex == "0");
2462                                    assert(ios.width() == 0);
2463                                }
2464                                ios.width(25);
2465                                left(ios);
2466                                {
2467                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2468                                    std::string ex(str, iter.base());
2469                                    assert(ex == "0************************");
2470                                    assert(ios.width() == 0);
2471                                }
2472                                ios.width(25);
2473                                right(ios);
2474                                {
2475                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2476                                    std::string ex(str, iter.base());
2477                                    assert(ex == "************************0");
2478                                    assert(ios.width() == 0);
2479                                }
2480                                ios.width(25);
2481                                internal(ios);
2482                                {
2483                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2484                                    std::string ex(str, iter.base());
2485                                    assert(ex == "************************0");
2486                                    assert(ios.width() == 0);
2487                                }
2488                            }
2489                        }
2490                        showpoint(ios);
2491                        {
2492                            ios.imbue(lc);
2493                            {
2494                                ios.width(0);
2495                                {
2496                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2497                                    std::string ex(str, iter.base());
2498                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
2499                                    assert(ios.width() == 0);
2500                                }
2501                                ios.width(25);
2502                                left(ios);
2503                                {
2504                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2505                                    std::string ex(str, iter.base());
2506                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
2507                                    assert(ios.width() == 0);
2508                                }
2509                                ios.width(25);
2510                                right(ios);
2511                                {
2512                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2513                                    std::string ex(str, iter.base());
2514                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
2515                                    assert(ios.width() == 0);
2516                                }
2517                                ios.width(25);
2518                                internal(ios);
2519                                {
2520                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2521                                    std::string ex(str, iter.base());
2522                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
2523                                    assert(ios.width() == 0);
2524                                }
2525                            }
2526                            ios.imbue(lg);
2527                            {
2528                                ios.width(0);
2529                                {
2530                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2531                                    std::string ex(str, iter.base());
2532                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
2533                                    assert(ios.width() == 0);
2534                                }
2535                                ios.width(25);
2536                                left(ios);
2537                                {
2538                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2539                                    std::string ex(str, iter.base());
2540                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
2541                                    assert(ios.width() == 0);
2542                                }
2543                                ios.width(25);
2544                                right(ios);
2545                                {
2546                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2547                                    std::string ex(str, iter.base());
2548                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
2549                                    assert(ios.width() == 0);
2550                                }
2551                                ios.width(25);
2552                                internal(ios);
2553                                {
2554                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2555                                    std::string ex(str, iter.base());
2556                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
2557                                    assert(ios.width() == 0);
2558                                }
2559                            }
2560                        }
2561                    }
2562                    showpos(ios);
2563                    {
2564                        noshowpoint(ios);
2565                        {
2566                            ios.imbue(lc);
2567                            {
2568                                ios.width(0);
2569                                {
2570                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2571                                    std::string ex(str, iter.base());
2572                                    assert(ex == "+0");
2573                                    assert(ios.width() == 0);
2574                                }
2575                                ios.width(25);
2576                                left(ios);
2577                                {
2578                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2579                                    std::string ex(str, iter.base());
2580                                    assert(ex == "+0***********************");
2581                                    assert(ios.width() == 0);
2582                                }
2583                                ios.width(25);
2584                                right(ios);
2585                                {
2586                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2587                                    std::string ex(str, iter.base());
2588                                    assert(ex == "***********************+0");
2589                                    assert(ios.width() == 0);
2590                                }
2591                                ios.width(25);
2592                                internal(ios);
2593                                {
2594                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2595                                    std::string ex(str, iter.base());
2596                                    assert(ex == "+***********************0");
2597                                    assert(ios.width() == 0);
2598                                }
2599                            }
2600                            ios.imbue(lg);
2601                            {
2602                                ios.width(0);
2603                                {
2604                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2605                                    std::string ex(str, iter.base());
2606                                    assert(ex == "+0");
2607                                    assert(ios.width() == 0);
2608                                }
2609                                ios.width(25);
2610                                left(ios);
2611                                {
2612                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2613                                    std::string ex(str, iter.base());
2614                                    assert(ex == "+0***********************");
2615                                    assert(ios.width() == 0);
2616                                }
2617                                ios.width(25);
2618                                right(ios);
2619                                {
2620                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2621                                    std::string ex(str, iter.base());
2622                                    assert(ex == "***********************+0");
2623                                    assert(ios.width() == 0);
2624                                }
2625                                ios.width(25);
2626                                internal(ios);
2627                                {
2628                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2629                                    std::string ex(str, iter.base());
2630                                    assert(ex == "+***********************0");
2631                                    assert(ios.width() == 0);
2632                                }
2633                            }
2634                        }
2635                        showpoint(ios);
2636                        {
2637                            ios.imbue(lc);
2638                            {
2639                                ios.width(0);
2640                                {
2641                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2642                                    std::string ex(str, iter.base());
2643                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
2644                                    assert(ios.width() == 0);
2645                                }
2646                                ios.width(25);
2647                                left(ios);
2648                                {
2649                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2650                                    std::string ex(str, iter.base());
2651                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
2652                                    assert(ios.width() == 0);
2653                                }
2654                                ios.width(25);
2655                                right(ios);
2656                                {
2657                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2658                                    std::string ex(str, iter.base());
2659                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
2660                                    assert(ios.width() == 0);
2661                                }
2662                                ios.width(25);
2663                                internal(ios);
2664                                {
2665                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2666                                    std::string ex(str, iter.base());
2667                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
2668                                    assert(ios.width() == 0);
2669                                }
2670                            }
2671                            ios.imbue(lg);
2672                            {
2673                                ios.width(0);
2674                                {
2675                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2676                                    std::string ex(str, iter.base());
2677                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
2678                                    assert(ios.width() == 0);
2679                                }
2680                                ios.width(25);
2681                                left(ios);
2682                                {
2683                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2684                                    std::string ex(str, iter.base());
2685                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
2686                                    assert(ios.width() == 0);
2687                                }
2688                                ios.width(25);
2689                                right(ios);
2690                                {
2691                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2692                                    std::string ex(str, iter.base());
2693                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
2694                                    assert(ios.width() == 0);
2695                                }
2696                                ios.width(25);
2697                                internal(ios);
2698                                {
2699                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2700                                    std::string ex(str, iter.base());
2701                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
2702                                    assert(ios.width() == 0);
2703                                }
2704                            }
2705                        }
2706                    }
2707                }
2708                uppercase(ios);
2709                {
2710                    noshowpos(ios);
2711                    {
2712                        noshowpoint(ios);
2713                        {
2714                            ios.imbue(lc);
2715                            {
2716                                ios.width(0);
2717                                {
2718                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2719                                    std::string ex(str, iter.base());
2720                                    assert(ex == "0");
2721                                    assert(ios.width() == 0);
2722                                }
2723                                ios.width(25);
2724                                left(ios);
2725                                {
2726                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2727                                    std::string ex(str, iter.base());
2728                                    assert(ex == "0************************");
2729                                    assert(ios.width() == 0);
2730                                }
2731                                ios.width(25);
2732                                right(ios);
2733                                {
2734                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2735                                    std::string ex(str, iter.base());
2736                                    assert(ex == "************************0");
2737                                    assert(ios.width() == 0);
2738                                }
2739                                ios.width(25);
2740                                internal(ios);
2741                                {
2742                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2743                                    std::string ex(str, iter.base());
2744                                    assert(ex == "************************0");
2745                                    assert(ios.width() == 0);
2746                                }
2747                            }
2748                            ios.imbue(lg);
2749                            {
2750                                ios.width(0);
2751                                {
2752                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2753                                    std::string ex(str, iter.base());
2754                                    assert(ex == "0");
2755                                    assert(ios.width() == 0);
2756                                }
2757                                ios.width(25);
2758                                left(ios);
2759                                {
2760                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2761                                    std::string ex(str, iter.base());
2762                                    assert(ex == "0************************");
2763                                    assert(ios.width() == 0);
2764                                }
2765                                ios.width(25);
2766                                right(ios);
2767                                {
2768                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2769                                    std::string ex(str, iter.base());
2770                                    assert(ex == "************************0");
2771                                    assert(ios.width() == 0);
2772                                }
2773                                ios.width(25);
2774                                internal(ios);
2775                                {
2776                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2777                                    std::string ex(str, iter.base());
2778                                    assert(ex == "************************0");
2779                                    assert(ios.width() == 0);
2780                                }
2781                            }
2782                        }
2783                        showpoint(ios);
2784                        {
2785                            ios.imbue(lc);
2786                            {
2787                                ios.width(0);
2788                                {
2789                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2790                                    std::string ex(str, iter.base());
2791                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
2792                                    assert(ios.width() == 0);
2793                                }
2794                                ios.width(25);
2795                                left(ios);
2796                                {
2797                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2798                                    std::string ex(str, iter.base());
2799                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
2800                                    assert(ios.width() == 0);
2801                                }
2802                                ios.width(25);
2803                                right(ios);
2804                                {
2805                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2806                                    std::string ex(str, iter.base());
2807                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
2808                                    assert(ios.width() == 0);
2809                                }
2810                                ios.width(25);
2811                                internal(ios);
2812                                {
2813                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2814                                    std::string ex(str, iter.base());
2815                                    assert(ex == "0.00000000000000000000000000000000000000000000000000000000000");
2816                                    assert(ios.width() == 0);
2817                                }
2818                            }
2819                            ios.imbue(lg);
2820                            {
2821                                ios.width(0);
2822                                {
2823                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2824                                    std::string ex(str, iter.base());
2825                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
2826                                    assert(ios.width() == 0);
2827                                }
2828                                ios.width(25);
2829                                left(ios);
2830                                {
2831                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2832                                    std::string ex(str, iter.base());
2833                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
2834                                    assert(ios.width() == 0);
2835                                }
2836                                ios.width(25);
2837                                right(ios);
2838                                {
2839                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2840                                    std::string ex(str, iter.base());
2841                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
2842                                    assert(ios.width() == 0);
2843                                }
2844                                ios.width(25);
2845                                internal(ios);
2846                                {
2847                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2848                                    std::string ex(str, iter.base());
2849                                    assert(ex == "0;00000000000000000000000000000000000000000000000000000000000");
2850                                    assert(ios.width() == 0);
2851                                }
2852                            }
2853                        }
2854                    }
2855                    showpos(ios);
2856                    {
2857                        noshowpoint(ios);
2858                        {
2859                            ios.imbue(lc);
2860                            {
2861                                ios.width(0);
2862                                {
2863                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2864                                    std::string ex(str, iter.base());
2865                                    assert(ex == "+0");
2866                                    assert(ios.width() == 0);
2867                                }
2868                                ios.width(25);
2869                                left(ios);
2870                                {
2871                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2872                                    std::string ex(str, iter.base());
2873                                    assert(ex == "+0***********************");
2874                                    assert(ios.width() == 0);
2875                                }
2876                                ios.width(25);
2877                                right(ios);
2878                                {
2879                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2880                                    std::string ex(str, iter.base());
2881                                    assert(ex == "***********************+0");
2882                                    assert(ios.width() == 0);
2883                                }
2884                                ios.width(25);
2885                                internal(ios);
2886                                {
2887                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2888                                    std::string ex(str, iter.base());
2889                                    assert(ex == "+***********************0");
2890                                    assert(ios.width() == 0);
2891                                }
2892                            }
2893                            ios.imbue(lg);
2894                            {
2895                                ios.width(0);
2896                                {
2897                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2898                                    std::string ex(str, iter.base());
2899                                    assert(ex == "+0");
2900                                    assert(ios.width() == 0);
2901                                }
2902                                ios.width(25);
2903                                left(ios);
2904                                {
2905                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2906                                    std::string ex(str, iter.base());
2907                                    assert(ex == "+0***********************");
2908                                    assert(ios.width() == 0);
2909                                }
2910                                ios.width(25);
2911                                right(ios);
2912                                {
2913                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2914                                    std::string ex(str, iter.base());
2915                                    assert(ex == "***********************+0");
2916                                    assert(ios.width() == 0);
2917                                }
2918                                ios.width(25);
2919                                internal(ios);
2920                                {
2921                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2922                                    std::string ex(str, iter.base());
2923                                    assert(ex == "+***********************0");
2924                                    assert(ios.width() == 0);
2925                                }
2926                            }
2927                        }
2928                        showpoint(ios);
2929                        {
2930                            ios.imbue(lc);
2931                            {
2932                                ios.width(0);
2933                                {
2934                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2935                                    std::string ex(str, iter.base());
2936                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
2937                                    assert(ios.width() == 0);
2938                                }
2939                                ios.width(25);
2940                                left(ios);
2941                                {
2942                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2943                                    std::string ex(str, iter.base());
2944                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
2945                                    assert(ios.width() == 0);
2946                                }
2947                                ios.width(25);
2948                                right(ios);
2949                                {
2950                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2951                                    std::string ex(str, iter.base());
2952                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
2953                                    assert(ios.width() == 0);
2954                                }
2955                                ios.width(25);
2956                                internal(ios);
2957                                {
2958                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2959                                    std::string ex(str, iter.base());
2960                                    assert(ex == "+0.00000000000000000000000000000000000000000000000000000000000");
2961                                    assert(ios.width() == 0);
2962                                }
2963                            }
2964                            ios.imbue(lg);
2965                            {
2966                                ios.width(0);
2967                                {
2968                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2969                                    std::string ex(str, iter.base());
2970                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
2971                                    assert(ios.width() == 0);
2972                                }
2973                                ios.width(25);
2974                                left(ios);
2975                                {
2976                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2977                                    std::string ex(str, iter.base());
2978                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
2979                                    assert(ios.width() == 0);
2980                                }
2981                                ios.width(25);
2982                                right(ios);
2983                                {
2984                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2985                                    std::string ex(str, iter.base());
2986                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
2987                                    assert(ios.width() == 0);
2988                                }
2989                                ios.width(25);
2990                                internal(ios);
2991                                {
2992                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
2993                                    std::string ex(str, iter.base());
2994                                    assert(ex == "+0;00000000000000000000000000000000000000000000000000000000000");
2995                                    assert(ios.width() == 0);
2996                                }
2997                            }
2998                        }
2999                    }
3000                }
3001            }
3002        }
3003    }
3004}
3005
3006void test2()
3007{
3008    char str[200];
3009    output_iterator<char*> iter;
3010    std::locale lc = std::locale::classic();
3011    std::locale lg(lc, new my_numpunct);
3012    const my_facet f(1);
3013    {
3014        double v = 1234567890.125;
3015        std::ios ios(0);
3016        // %g
3017        {
3018            ios.precision(0);
3019            {
3020                nouppercase(ios);
3021                {
3022                    noshowpos(ios);
3023                    {
3024                        noshowpoint(ios);
3025                        {
3026                            ios.imbue(lc);
3027                            {
3028                                ios.width(0);
3029                                {
3030                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3031                                    std::string ex(str, iter.base());
3032                                    assert(ex == "1e+09");
3033                                    assert(ios.width() == 0);
3034                                }
3035                                ios.width(25);
3036                                left(ios);
3037                                {
3038                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3039                                    std::string ex(str, iter.base());
3040                                    assert(ex == "1e+09********************");
3041                                    assert(ios.width() == 0);
3042                                }
3043                                ios.width(25);
3044                                right(ios);
3045                                {
3046                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3047                                    std::string ex(str, iter.base());
3048                                    assert(ex == "********************1e+09");
3049                                    assert(ios.width() == 0);
3050                                }
3051                                ios.width(25);
3052                                internal(ios);
3053                                {
3054                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3055                                    std::string ex(str, iter.base());
3056                                    assert(ex == "********************1e+09");
3057                                    assert(ios.width() == 0);
3058                                }
3059                            }
3060                            ios.imbue(lg);
3061                            {
3062                                ios.width(0);
3063                                {
3064                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3065                                    std::string ex(str, iter.base());
3066                                    assert(ex == "1e+09");
3067                                    assert(ios.width() == 0);
3068                                }
3069                                ios.width(25);
3070                                left(ios);
3071                                {
3072                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3073                                    std::string ex(str, iter.base());
3074                                    assert(ex == "1e+09********************");
3075                                    assert(ios.width() == 0);
3076                                }
3077                                ios.width(25);
3078                                right(ios);
3079                                {
3080                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3081                                    std::string ex(str, iter.base());
3082                                    assert(ex == "********************1e+09");
3083                                    assert(ios.width() == 0);
3084                                }
3085                                ios.width(25);
3086                                internal(ios);
3087                                {
3088                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3089                                    std::string ex(str, iter.base());
3090                                    assert(ex == "********************1e+09");
3091                                    assert(ios.width() == 0);
3092                                }
3093                            }
3094                        }
3095                        showpoint(ios);
3096                        {
3097                            ios.imbue(lc);
3098                            {
3099                                ios.width(0);
3100                                {
3101                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3102                                    std::string ex(str, iter.base());
3103                                    assert(ex == "1.e+09");
3104                                    assert(ios.width() == 0);
3105                                }
3106                                ios.width(25);
3107                                left(ios);
3108                                {
3109                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3110                                    std::string ex(str, iter.base());
3111                                    assert(ex == "1.e+09*******************");
3112                                    assert(ios.width() == 0);
3113                                }
3114                                ios.width(25);
3115                                right(ios);
3116                                {
3117                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3118                                    std::string ex(str, iter.base());
3119                                    assert(ex == "*******************1.e+09");
3120                                    assert(ios.width() == 0);
3121                                }
3122                                ios.width(25);
3123                                internal(ios);
3124                                {
3125                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3126                                    std::string ex(str, iter.base());
3127                                    assert(ex == "*******************1.e+09");
3128                                    assert(ios.width() == 0);
3129                                }
3130                            }
3131                            ios.imbue(lg);
3132                            {
3133                                ios.width(0);
3134                                {
3135                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3136                                    std::string ex(str, iter.base());
3137                                    assert(ex == "1;e+09");
3138                                    assert(ios.width() == 0);
3139                                }
3140                                ios.width(25);
3141                                left(ios);
3142                                {
3143                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3144                                    std::string ex(str, iter.base());
3145                                    assert(ex == "1;e+09*******************");
3146                                    assert(ios.width() == 0);
3147                                }
3148                                ios.width(25);
3149                                right(ios);
3150                                {
3151                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3152                                    std::string ex(str, iter.base());
3153                                    assert(ex == "*******************1;e+09");
3154                                    assert(ios.width() == 0);
3155                                }
3156                                ios.width(25);
3157                                internal(ios);
3158                                {
3159                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3160                                    std::string ex(str, iter.base());
3161                                    assert(ex == "*******************1;e+09");
3162                                    assert(ios.width() == 0);
3163                                }
3164                            }
3165                        }
3166                    }
3167                    showpos(ios);
3168                    {
3169                        noshowpoint(ios);
3170                        {
3171                            ios.imbue(lc);
3172                            {
3173                                ios.width(0);
3174                                {
3175                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3176                                    std::string ex(str, iter.base());
3177                                    assert(ex == "+1e+09");
3178                                    assert(ios.width() == 0);
3179                                }
3180                                ios.width(25);
3181                                left(ios);
3182                                {
3183                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3184                                    std::string ex(str, iter.base());
3185                                    assert(ex == "+1e+09*******************");
3186                                    assert(ios.width() == 0);
3187                                }
3188                                ios.width(25);
3189                                right(ios);
3190                                {
3191                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3192                                    std::string ex(str, iter.base());
3193                                    assert(ex == "*******************+1e+09");
3194                                    assert(ios.width() == 0);
3195                                }
3196                                ios.width(25);
3197                                internal(ios);
3198                                {
3199                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3200                                    std::string ex(str, iter.base());
3201                                    assert(ex == "+*******************1e+09");
3202                                    assert(ios.width() == 0);
3203                                }
3204                            }
3205                            ios.imbue(lg);
3206                            {
3207                                ios.width(0);
3208                                {
3209                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3210                                    std::string ex(str, iter.base());
3211                                    assert(ex == "+1e+09");
3212                                    assert(ios.width() == 0);
3213                                }
3214                                ios.width(25);
3215                                left(ios);
3216                                {
3217                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3218                                    std::string ex(str, iter.base());
3219                                    assert(ex == "+1e+09*******************");
3220                                    assert(ios.width() == 0);
3221                                }
3222                                ios.width(25);
3223                                right(ios);
3224                                {
3225                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3226                                    std::string ex(str, iter.base());
3227                                    assert(ex == "*******************+1e+09");
3228                                    assert(ios.width() == 0);
3229                                }
3230                                ios.width(25);
3231                                internal(ios);
3232                                {
3233                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3234                                    std::string ex(str, iter.base());
3235                                    assert(ex == "+*******************1e+09");
3236                                    assert(ios.width() == 0);
3237                                }
3238                            }
3239                        }
3240                        showpoint(ios);
3241                        {
3242                            ios.imbue(lc);
3243                            {
3244                                ios.width(0);
3245                                {
3246                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3247                                    std::string ex(str, iter.base());
3248                                    assert(ex == "+1.e+09");
3249                                    assert(ios.width() == 0);
3250                                }
3251                                ios.width(25);
3252                                left(ios);
3253                                {
3254                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3255                                    std::string ex(str, iter.base());
3256                                    assert(ex == "+1.e+09******************");
3257                                    assert(ios.width() == 0);
3258                                }
3259                                ios.width(25);
3260                                right(ios);
3261                                {
3262                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3263                                    std::string ex(str, iter.base());
3264                                    assert(ex == "******************+1.e+09");
3265                                    assert(ios.width() == 0);
3266                                }
3267                                ios.width(25);
3268                                internal(ios);
3269                                {
3270                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3271                                    std::string ex(str, iter.base());
3272                                    assert(ex == "+******************1.e+09");
3273                                    assert(ios.width() == 0);
3274                                }
3275                            }
3276                            ios.imbue(lg);
3277                            {
3278                                ios.width(0);
3279                                {
3280                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3281                                    std::string ex(str, iter.base());
3282                                    assert(ex == "+1;e+09");
3283                                    assert(ios.width() == 0);
3284                                }
3285                                ios.width(25);
3286                                left(ios);
3287                                {
3288                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3289                                    std::string ex(str, iter.base());
3290                                    assert(ex == "+1;e+09******************");
3291                                    assert(ios.width() == 0);
3292                                }
3293                                ios.width(25);
3294                                right(ios);
3295                                {
3296                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3297                                    std::string ex(str, iter.base());
3298                                    assert(ex == "******************+1;e+09");
3299                                    assert(ios.width() == 0);
3300                                }
3301                                ios.width(25);
3302                                internal(ios);
3303                                {
3304                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3305                                    std::string ex(str, iter.base());
3306                                    assert(ex == "+******************1;e+09");
3307                                    assert(ios.width() == 0);
3308                                }
3309                            }
3310                        }
3311                    }
3312                }
3313                uppercase(ios);
3314                {
3315                    noshowpos(ios);
3316                    {
3317                        noshowpoint(ios);
3318                        {
3319                            ios.imbue(lc);
3320                            {
3321                                ios.width(0);
3322                                {
3323                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3324                                    std::string ex(str, iter.base());
3325                                    assert(ex == "1E+09");
3326                                    assert(ios.width() == 0);
3327                                }
3328                                ios.width(25);
3329                                left(ios);
3330                                {
3331                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3332                                    std::string ex(str, iter.base());
3333                                    assert(ex == "1E+09********************");
3334                                    assert(ios.width() == 0);
3335                                }
3336                                ios.width(25);
3337                                right(ios);
3338                                {
3339                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3340                                    std::string ex(str, iter.base());
3341                                    assert(ex == "********************1E+09");
3342                                    assert(ios.width() == 0);
3343                                }
3344                                ios.width(25);
3345                                internal(ios);
3346                                {
3347                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3348                                    std::string ex(str, iter.base());
3349                                    assert(ex == "********************1E+09");
3350                                    assert(ios.width() == 0);
3351                                }
3352                            }
3353                            ios.imbue(lg);
3354                            {
3355                                ios.width(0);
3356                                {
3357                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3358                                    std::string ex(str, iter.base());
3359                                    assert(ex == "1E+09");
3360                                    assert(ios.width() == 0);
3361                                }
3362                                ios.width(25);
3363                                left(ios);
3364                                {
3365                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3366                                    std::string ex(str, iter.base());
3367                                    assert(ex == "1E+09********************");
3368                                    assert(ios.width() == 0);
3369                                }
3370                                ios.width(25);
3371                                right(ios);
3372                                {
3373                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3374                                    std::string ex(str, iter.base());
3375                                    assert(ex == "********************1E+09");
3376                                    assert(ios.width() == 0);
3377                                }
3378                                ios.width(25);
3379                                internal(ios);
3380                                {
3381                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3382                                    std::string ex(str, iter.base());
3383                                    assert(ex == "********************1E+09");
3384                                    assert(ios.width() == 0);
3385                                }
3386                            }
3387                        }
3388                        showpoint(ios);
3389                        {
3390                            ios.imbue(lc);
3391                            {
3392                                ios.width(0);
3393                                {
3394                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3395                                    std::string ex(str, iter.base());
3396                                    assert(ex == "1.E+09");
3397                                    assert(ios.width() == 0);
3398                                }
3399                                ios.width(25);
3400                                left(ios);
3401                                {
3402                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3403                                    std::string ex(str, iter.base());
3404                                    assert(ex == "1.E+09*******************");
3405                                    assert(ios.width() == 0);
3406                                }
3407                                ios.width(25);
3408                                right(ios);
3409                                {
3410                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3411                                    std::string ex(str, iter.base());
3412                                    assert(ex == "*******************1.E+09");
3413                                    assert(ios.width() == 0);
3414                                }
3415                                ios.width(25);
3416                                internal(ios);
3417                                {
3418                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3419                                    std::string ex(str, iter.base());
3420                                    assert(ex == "*******************1.E+09");
3421                                    assert(ios.width() == 0);
3422                                }
3423                            }
3424                            ios.imbue(lg);
3425                            {
3426                                ios.width(0);
3427                                {
3428                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3429                                    std::string ex(str, iter.base());
3430                                    assert(ex == "1;E+09");
3431                                    assert(ios.width() == 0);
3432                                }
3433                                ios.width(25);
3434                                left(ios);
3435                                {
3436                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3437                                    std::string ex(str, iter.base());
3438                                    assert(ex == "1;E+09*******************");
3439                                    assert(ios.width() == 0);
3440                                }
3441                                ios.width(25);
3442                                right(ios);
3443                                {
3444                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3445                                    std::string ex(str, iter.base());
3446                                    assert(ex == "*******************1;E+09");
3447                                    assert(ios.width() == 0);
3448                                }
3449                                ios.width(25);
3450                                internal(ios);
3451                                {
3452                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3453                                    std::string ex(str, iter.base());
3454                                    assert(ex == "*******************1;E+09");
3455                                    assert(ios.width() == 0);
3456                                }
3457                            }
3458                        }
3459                    }
3460                    showpos(ios);
3461                    {
3462                        noshowpoint(ios);
3463                        {
3464                            ios.imbue(lc);
3465                            {
3466                                ios.width(0);
3467                                {
3468                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3469                                    std::string ex(str, iter.base());
3470                                    assert(ex == "+1E+09");
3471                                    assert(ios.width() == 0);
3472                                }
3473                                ios.width(25);
3474                                left(ios);
3475                                {
3476                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3477                                    std::string ex(str, iter.base());
3478                                    assert(ex == "+1E+09*******************");
3479                                    assert(ios.width() == 0);
3480                                }
3481                                ios.width(25);
3482                                right(ios);
3483                                {
3484                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3485                                    std::string ex(str, iter.base());
3486                                    assert(ex == "*******************+1E+09");
3487                                    assert(ios.width() == 0);
3488                                }
3489                                ios.width(25);
3490                                internal(ios);
3491                                {
3492                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3493                                    std::string ex(str, iter.base());
3494                                    assert(ex == "+*******************1E+09");
3495                                    assert(ios.width() == 0);
3496                                }
3497                            }
3498                            ios.imbue(lg);
3499                            {
3500                                ios.width(0);
3501                                {
3502                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3503                                    std::string ex(str, iter.base());
3504                                    assert(ex == "+1E+09");
3505                                    assert(ios.width() == 0);
3506                                }
3507                                ios.width(25);
3508                                left(ios);
3509                                {
3510                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3511                                    std::string ex(str, iter.base());
3512                                    assert(ex == "+1E+09*******************");
3513                                    assert(ios.width() == 0);
3514                                }
3515                                ios.width(25);
3516                                right(ios);
3517                                {
3518                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3519                                    std::string ex(str, iter.base());
3520                                    assert(ex == "*******************+1E+09");
3521                                    assert(ios.width() == 0);
3522                                }
3523                                ios.width(25);
3524                                internal(ios);
3525                                {
3526                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3527                                    std::string ex(str, iter.base());
3528                                    assert(ex == "+*******************1E+09");
3529                                    assert(ios.width() == 0);
3530                                }
3531                            }
3532                        }
3533                        showpoint(ios);
3534                        {
3535                            ios.imbue(lc);
3536                            {
3537                                ios.width(0);
3538                                {
3539                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3540                                    std::string ex(str, iter.base());
3541                                    assert(ex == "+1.E+09");
3542                                    assert(ios.width() == 0);
3543                                }
3544                                ios.width(25);
3545                                left(ios);
3546                                {
3547                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3548                                    std::string ex(str, iter.base());
3549                                    assert(ex == "+1.E+09******************");
3550                                    assert(ios.width() == 0);
3551                                }
3552                                ios.width(25);
3553                                right(ios);
3554                                {
3555                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3556                                    std::string ex(str, iter.base());
3557                                    assert(ex == "******************+1.E+09");
3558                                    assert(ios.width() == 0);
3559                                }
3560                                ios.width(25);
3561                                internal(ios);
3562                                {
3563                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3564                                    std::string ex(str, iter.base());
3565                                    assert(ex == "+******************1.E+09");
3566                                    assert(ios.width() == 0);
3567                                }
3568                            }
3569                            ios.imbue(lg);
3570                            {
3571                                ios.width(0);
3572                                {
3573                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3574                                    std::string ex(str, iter.base());
3575                                    assert(ex == "+1;E+09");
3576                                    assert(ios.width() == 0);
3577                                }
3578                                ios.width(25);
3579                                left(ios);
3580                                {
3581                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3582                                    std::string ex(str, iter.base());
3583                                    assert(ex == "+1;E+09******************");
3584                                    assert(ios.width() == 0);
3585                                }
3586                                ios.width(25);
3587                                right(ios);
3588                                {
3589                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3590                                    std::string ex(str, iter.base());
3591                                    assert(ex == "******************+1;E+09");
3592                                    assert(ios.width() == 0);
3593                                }
3594                                ios.width(25);
3595                                internal(ios);
3596                                {
3597                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3598                                    std::string ex(str, iter.base());
3599                                    assert(ex == "+******************1;E+09");
3600                                    assert(ios.width() == 0);
3601                                }
3602                            }
3603                        }
3604                    }
3605                }
3606            }
3607            ios.precision(1);
3608            {
3609                nouppercase(ios);
3610                {
3611                    noshowpos(ios);
3612                    {
3613                        noshowpoint(ios);
3614                        {
3615                            ios.imbue(lc);
3616                            {
3617                                ios.width(0);
3618                                {
3619                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3620                                    std::string ex(str, iter.base());
3621                                    assert(ex == "1e+09");
3622                                    assert(ios.width() == 0);
3623                                }
3624                                ios.width(25);
3625                                left(ios);
3626                                {
3627                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3628                                    std::string ex(str, iter.base());
3629                                    assert(ex == "1e+09********************");
3630                                    assert(ios.width() == 0);
3631                                }
3632                                ios.width(25);
3633                                right(ios);
3634                                {
3635                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3636                                    std::string ex(str, iter.base());
3637                                    assert(ex == "********************1e+09");
3638                                    assert(ios.width() == 0);
3639                                }
3640                                ios.width(25);
3641                                internal(ios);
3642                                {
3643                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3644                                    std::string ex(str, iter.base());
3645                                    assert(ex == "********************1e+09");
3646                                    assert(ios.width() == 0);
3647                                }
3648                            }
3649                            ios.imbue(lg);
3650                            {
3651                                ios.width(0);
3652                                {
3653                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3654                                    std::string ex(str, iter.base());
3655                                    assert(ex == "1e+09");
3656                                    assert(ios.width() == 0);
3657                                }
3658                                ios.width(25);
3659                                left(ios);
3660                                {
3661                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3662                                    std::string ex(str, iter.base());
3663                                    assert(ex == "1e+09********************");
3664                                    assert(ios.width() == 0);
3665                                }
3666                                ios.width(25);
3667                                right(ios);
3668                                {
3669                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3670                                    std::string ex(str, iter.base());
3671                                    assert(ex == "********************1e+09");
3672                                    assert(ios.width() == 0);
3673                                }
3674                                ios.width(25);
3675                                internal(ios);
3676                                {
3677                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3678                                    std::string ex(str, iter.base());
3679                                    assert(ex == "********************1e+09");
3680                                    assert(ios.width() == 0);
3681                                }
3682                            }
3683                        }
3684                        showpoint(ios);
3685                        {
3686                            ios.imbue(lc);
3687                            {
3688                                ios.width(0);
3689                                {
3690                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3691                                    std::string ex(str, iter.base());
3692                                    assert(ex == "1.e+09");
3693                                    assert(ios.width() == 0);
3694                                }
3695                                ios.width(25);
3696                                left(ios);
3697                                {
3698                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3699                                    std::string ex(str, iter.base());
3700                                    assert(ex == "1.e+09*******************");
3701                                    assert(ios.width() == 0);
3702                                }
3703                                ios.width(25);
3704                                right(ios);
3705                                {
3706                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3707                                    std::string ex(str, iter.base());
3708                                    assert(ex == "*******************1.e+09");
3709                                    assert(ios.width() == 0);
3710                                }
3711                                ios.width(25);
3712                                internal(ios);
3713                                {
3714                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3715                                    std::string ex(str, iter.base());
3716                                    assert(ex == "*******************1.e+09");
3717                                    assert(ios.width() == 0);
3718                                }
3719                            }
3720                            ios.imbue(lg);
3721                            {
3722                                ios.width(0);
3723                                {
3724                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3725                                    std::string ex(str, iter.base());
3726                                    assert(ex == "1;e+09");
3727                                    assert(ios.width() == 0);
3728                                }
3729                                ios.width(25);
3730                                left(ios);
3731                                {
3732                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3733                                    std::string ex(str, iter.base());
3734                                    assert(ex == "1;e+09*******************");
3735                                    assert(ios.width() == 0);
3736                                }
3737                                ios.width(25);
3738                                right(ios);
3739                                {
3740                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3741                                    std::string ex(str, iter.base());
3742                                    assert(ex == "*******************1;e+09");
3743                                    assert(ios.width() == 0);
3744                                }
3745                                ios.width(25);
3746                                internal(ios);
3747                                {
3748                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3749                                    std::string ex(str, iter.base());
3750                                    assert(ex == "*******************1;e+09");
3751                                    assert(ios.width() == 0);
3752                                }
3753                            }
3754                        }
3755                    }
3756                    showpos(ios);
3757                    {
3758                        noshowpoint(ios);
3759                        {
3760                            ios.imbue(lc);
3761                            {
3762                                ios.width(0);
3763                                {
3764                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3765                                    std::string ex(str, iter.base());
3766                                    assert(ex == "+1e+09");
3767                                    assert(ios.width() == 0);
3768                                }
3769                                ios.width(25);
3770                                left(ios);
3771                                {
3772                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3773                                    std::string ex(str, iter.base());
3774                                    assert(ex == "+1e+09*******************");
3775                                    assert(ios.width() == 0);
3776                                }
3777                                ios.width(25);
3778                                right(ios);
3779                                {
3780                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3781                                    std::string ex(str, iter.base());
3782                                    assert(ex == "*******************+1e+09");
3783                                    assert(ios.width() == 0);
3784                                }
3785                                ios.width(25);
3786                                internal(ios);
3787                                {
3788                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3789                                    std::string ex(str, iter.base());
3790                                    assert(ex == "+*******************1e+09");
3791                                    assert(ios.width() == 0);
3792                                }
3793                            }
3794                            ios.imbue(lg);
3795                            {
3796                                ios.width(0);
3797                                {
3798                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3799                                    std::string ex(str, iter.base());
3800                                    assert(ex == "+1e+09");
3801                                    assert(ios.width() == 0);
3802                                }
3803                                ios.width(25);
3804                                left(ios);
3805                                {
3806                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3807                                    std::string ex(str, iter.base());
3808                                    assert(ex == "+1e+09*******************");
3809                                    assert(ios.width() == 0);
3810                                }
3811                                ios.width(25);
3812                                right(ios);
3813                                {
3814                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3815                                    std::string ex(str, iter.base());
3816                                    assert(ex == "*******************+1e+09");
3817                                    assert(ios.width() == 0);
3818                                }
3819                                ios.width(25);
3820                                internal(ios);
3821                                {
3822                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3823                                    std::string ex(str, iter.base());
3824                                    assert(ex == "+*******************1e+09");
3825                                    assert(ios.width() == 0);
3826                                }
3827                            }
3828                        }
3829                        showpoint(ios);
3830                        {
3831                            ios.imbue(lc);
3832                            {
3833                                ios.width(0);
3834                                {
3835                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3836                                    std::string ex(str, iter.base());
3837                                    assert(ex == "+1.e+09");
3838                                    assert(ios.width() == 0);
3839                                }
3840                                ios.width(25);
3841                                left(ios);
3842                                {
3843                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3844                                    std::string ex(str, iter.base());
3845                                    assert(ex == "+1.e+09******************");
3846                                    assert(ios.width() == 0);
3847                                }
3848                                ios.width(25);
3849                                right(ios);
3850                                {
3851                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3852                                    std::string ex(str, iter.base());
3853                                    assert(ex == "******************+1.e+09");
3854                                    assert(ios.width() == 0);
3855                                }
3856                                ios.width(25);
3857                                internal(ios);
3858                                {
3859                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3860                                    std::string ex(str, iter.base());
3861                                    assert(ex == "+******************1.e+09");
3862                                    assert(ios.width() == 0);
3863                                }
3864                            }
3865                            ios.imbue(lg);
3866                            {
3867                                ios.width(0);
3868                                {
3869                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3870                                    std::string ex(str, iter.base());
3871                                    assert(ex == "+1;e+09");
3872                                    assert(ios.width() == 0);
3873                                }
3874                                ios.width(25);
3875                                left(ios);
3876                                {
3877                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3878                                    std::string ex(str, iter.base());
3879                                    assert(ex == "+1;e+09******************");
3880                                    assert(ios.width() == 0);
3881                                }
3882                                ios.width(25);
3883                                right(ios);
3884                                {
3885                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3886                                    std::string ex(str, iter.base());
3887                                    assert(ex == "******************+1;e+09");
3888                                    assert(ios.width() == 0);
3889                                }
3890                                ios.width(25);
3891                                internal(ios);
3892                                {
3893                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3894                                    std::string ex(str, iter.base());
3895                                    assert(ex == "+******************1;e+09");
3896                                    assert(ios.width() == 0);
3897                                }
3898                            }
3899                        }
3900                    }
3901                }
3902                uppercase(ios);
3903                {
3904                    noshowpos(ios);
3905                    {
3906                        noshowpoint(ios);
3907                        {
3908                            ios.imbue(lc);
3909                            {
3910                                ios.width(0);
3911                                {
3912                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3913                                    std::string ex(str, iter.base());
3914                                    assert(ex == "1E+09");
3915                                    assert(ios.width() == 0);
3916                                }
3917                                ios.width(25);
3918                                left(ios);
3919                                {
3920                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3921                                    std::string ex(str, iter.base());
3922                                    assert(ex == "1E+09********************");
3923                                    assert(ios.width() == 0);
3924                                }
3925                                ios.width(25);
3926                                right(ios);
3927                                {
3928                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3929                                    std::string ex(str, iter.base());
3930                                    assert(ex == "********************1E+09");
3931                                    assert(ios.width() == 0);
3932                                }
3933                                ios.width(25);
3934                                internal(ios);
3935                                {
3936                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3937                                    std::string ex(str, iter.base());
3938                                    assert(ex == "********************1E+09");
3939                                    assert(ios.width() == 0);
3940                                }
3941                            }
3942                            ios.imbue(lg);
3943                            {
3944                                ios.width(0);
3945                                {
3946                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3947                                    std::string ex(str, iter.base());
3948                                    assert(ex == "1E+09");
3949                                    assert(ios.width() == 0);
3950                                }
3951                                ios.width(25);
3952                                left(ios);
3953                                {
3954                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3955                                    std::string ex(str, iter.base());
3956                                    assert(ex == "1E+09********************");
3957                                    assert(ios.width() == 0);
3958                                }
3959                                ios.width(25);
3960                                right(ios);
3961                                {
3962                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3963                                    std::string ex(str, iter.base());
3964                                    assert(ex == "********************1E+09");
3965                                    assert(ios.width() == 0);
3966                                }
3967                                ios.width(25);
3968                                internal(ios);
3969                                {
3970                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3971                                    std::string ex(str, iter.base());
3972                                    assert(ex == "********************1E+09");
3973                                    assert(ios.width() == 0);
3974                                }
3975                            }
3976                        }
3977                        showpoint(ios);
3978                        {
3979                            ios.imbue(lc);
3980                            {
3981                                ios.width(0);
3982                                {
3983                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3984                                    std::string ex(str, iter.base());
3985                                    assert(ex == "1.E+09");
3986                                    assert(ios.width() == 0);
3987                                }
3988                                ios.width(25);
3989                                left(ios);
3990                                {
3991                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
3992                                    std::string ex(str, iter.base());
3993                                    assert(ex == "1.E+09*******************");
3994                                    assert(ios.width() == 0);
3995                                }
3996                                ios.width(25);
3997                                right(ios);
3998                                {
3999                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4000                                    std::string ex(str, iter.base());
4001                                    assert(ex == "*******************1.E+09");
4002                                    assert(ios.width() == 0);
4003                                }
4004                                ios.width(25);
4005                                internal(ios);
4006                                {
4007                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4008                                    std::string ex(str, iter.base());
4009                                    assert(ex == "*******************1.E+09");
4010                                    assert(ios.width() == 0);
4011                                }
4012                            }
4013                            ios.imbue(lg);
4014                            {
4015                                ios.width(0);
4016                                {
4017                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4018                                    std::string ex(str, iter.base());
4019                                    assert(ex == "1;E+09");
4020                                    assert(ios.width() == 0);
4021                                }
4022                                ios.width(25);
4023                                left(ios);
4024                                {
4025                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4026                                    std::string ex(str, iter.base());
4027                                    assert(ex == "1;E+09*******************");
4028                                    assert(ios.width() == 0);
4029                                }
4030                                ios.width(25);
4031                                right(ios);
4032                                {
4033                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4034                                    std::string ex(str, iter.base());
4035                                    assert(ex == "*******************1;E+09");
4036                                    assert(ios.width() == 0);
4037                                }
4038                                ios.width(25);
4039                                internal(ios);
4040                                {
4041                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4042                                    std::string ex(str, iter.base());
4043                                    assert(ex == "*******************1;E+09");
4044                                    assert(ios.width() == 0);
4045                                }
4046                            }
4047                        }
4048                    }
4049                    showpos(ios);
4050                    {
4051                        noshowpoint(ios);
4052                        {
4053                            ios.imbue(lc);
4054                            {
4055                                ios.width(0);
4056                                {
4057                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4058                                    std::string ex(str, iter.base());
4059                                    assert(ex == "+1E+09");
4060                                    assert(ios.width() == 0);
4061                                }
4062                                ios.width(25);
4063                                left(ios);
4064                                {
4065                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4066                                    std::string ex(str, iter.base());
4067                                    assert(ex == "+1E+09*******************");
4068                                    assert(ios.width() == 0);
4069                                }
4070                                ios.width(25);
4071                                right(ios);
4072                                {
4073                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4074                                    std::string ex(str, iter.base());
4075                                    assert(ex == "*******************+1E+09");
4076                                    assert(ios.width() == 0);
4077                                }
4078                                ios.width(25);
4079                                internal(ios);
4080                                {
4081                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4082                                    std::string ex(str, iter.base());
4083                                    assert(ex == "+*******************1E+09");
4084                                    assert(ios.width() == 0);
4085                                }
4086                            }
4087                            ios.imbue(lg);
4088                            {
4089                                ios.width(0);
4090                                {
4091                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4092                                    std::string ex(str, iter.base());
4093                                    assert(ex == "+1E+09");
4094                                    assert(ios.width() == 0);
4095                                }
4096                                ios.width(25);
4097                                left(ios);
4098                                {
4099                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4100                                    std::string ex(str, iter.base());
4101                                    assert(ex == "+1E+09*******************");
4102                                    assert(ios.width() == 0);
4103                                }
4104                                ios.width(25);
4105                                right(ios);
4106                                {
4107                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4108                                    std::string ex(str, iter.base());
4109                                    assert(ex == "*******************+1E+09");
4110                                    assert(ios.width() == 0);
4111                                }
4112                                ios.width(25);
4113                                internal(ios);
4114                                {
4115                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4116                                    std::string ex(str, iter.base());
4117                                    assert(ex == "+*******************1E+09");
4118                                    assert(ios.width() == 0);
4119                                }
4120                            }
4121                        }
4122                        showpoint(ios);
4123                        {
4124                            ios.imbue(lc);
4125                            {
4126                                ios.width(0);
4127                                {
4128                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4129                                    std::string ex(str, iter.base());
4130                                    assert(ex == "+1.E+09");
4131                                    assert(ios.width() == 0);
4132                                }
4133                                ios.width(25);
4134                                left(ios);
4135                                {
4136                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4137                                    std::string ex(str, iter.base());
4138                                    assert(ex == "+1.E+09******************");
4139                                    assert(ios.width() == 0);
4140                                }
4141                                ios.width(25);
4142                                right(ios);
4143                                {
4144                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4145                                    std::string ex(str, iter.base());
4146                                    assert(ex == "******************+1.E+09");
4147                                    assert(ios.width() == 0);
4148                                }
4149                                ios.width(25);
4150                                internal(ios);
4151                                {
4152                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4153                                    std::string ex(str, iter.base());
4154                                    assert(ex == "+******************1.E+09");
4155                                    assert(ios.width() == 0);
4156                                }
4157                            }
4158                            ios.imbue(lg);
4159                            {
4160                                ios.width(0);
4161                                {
4162                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4163                                    std::string ex(str, iter.base());
4164                                    assert(ex == "+1;E+09");
4165                                    assert(ios.width() == 0);
4166                                }
4167                                ios.width(25);
4168                                left(ios);
4169                                {
4170                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4171                                    std::string ex(str, iter.base());
4172                                    assert(ex == "+1;E+09******************");
4173                                    assert(ios.width() == 0);
4174                                }
4175                                ios.width(25);
4176                                right(ios);
4177                                {
4178                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4179                                    std::string ex(str, iter.base());
4180                                    assert(ex == "******************+1;E+09");
4181                                    assert(ios.width() == 0);
4182                                }
4183                                ios.width(25);
4184                                internal(ios);
4185                                {
4186                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4187                                    std::string ex(str, iter.base());
4188                                    assert(ex == "+******************1;E+09");
4189                                    assert(ios.width() == 0);
4190                                }
4191                            }
4192                        }
4193                    }
4194                }
4195            }
4196            ios.precision(6);
4197            {
4198                nouppercase(ios);
4199                {
4200                    noshowpos(ios);
4201                    {
4202                        noshowpoint(ios);
4203                        {
4204                            ios.imbue(lc);
4205                            {
4206                                ios.width(0);
4207                                {
4208                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4209                                    std::string ex(str, iter.base());
4210                                    assert(ex == "1.23457e+09");
4211                                    assert(ios.width() == 0);
4212                                }
4213                                ios.width(25);
4214                                left(ios);
4215                                {
4216                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4217                                    std::string ex(str, iter.base());
4218                                    assert(ex == "1.23457e+09**************");
4219                                    assert(ios.width() == 0);
4220                                }
4221                                ios.width(25);
4222                                right(ios);
4223                                {
4224                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4225                                    std::string ex(str, iter.base());
4226                                    assert(ex == "**************1.23457e+09");
4227                                    assert(ios.width() == 0);
4228                                }
4229                                ios.width(25);
4230                                internal(ios);
4231                                {
4232                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4233                                    std::string ex(str, iter.base());
4234                                    assert(ex == "**************1.23457e+09");
4235                                    assert(ios.width() == 0);
4236                                }
4237                            }
4238                            ios.imbue(lg);
4239                            {
4240                                ios.width(0);
4241                                {
4242                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4243                                    std::string ex(str, iter.base());
4244                                    assert(ex == "1;23457e+09");
4245                                    assert(ios.width() == 0);
4246                                }
4247                                ios.width(25);
4248                                left(ios);
4249                                {
4250                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4251                                    std::string ex(str, iter.base());
4252                                    assert(ex == "1;23457e+09**************");
4253                                    assert(ios.width() == 0);
4254                                }
4255                                ios.width(25);
4256                                right(ios);
4257                                {
4258                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4259                                    std::string ex(str, iter.base());
4260                                    assert(ex == "**************1;23457e+09");
4261                                    assert(ios.width() == 0);
4262                                }
4263                                ios.width(25);
4264                                internal(ios);
4265                                {
4266                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4267                                    std::string ex(str, iter.base());
4268                                    assert(ex == "**************1;23457e+09");
4269                                    assert(ios.width() == 0);
4270                                }
4271                            }
4272                        }
4273                        showpoint(ios);
4274                        {
4275                            ios.imbue(lc);
4276                            {
4277                                ios.width(0);
4278                                {
4279                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4280                                    std::string ex(str, iter.base());
4281                                    assert(ex == "1.23457e+09");
4282                                    assert(ios.width() == 0);
4283                                }
4284                                ios.width(25);
4285                                left(ios);
4286                                {
4287                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4288                                    std::string ex(str, iter.base());
4289                                    assert(ex == "1.23457e+09**************");
4290                                    assert(ios.width() == 0);
4291                                }
4292                                ios.width(25);
4293                                right(ios);
4294                                {
4295                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4296                                    std::string ex(str, iter.base());
4297                                    assert(ex == "**************1.23457e+09");
4298                                    assert(ios.width() == 0);
4299                                }
4300                                ios.width(25);
4301                                internal(ios);
4302                                {
4303                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4304                                    std::string ex(str, iter.base());
4305                                    assert(ex == "**************1.23457e+09");
4306                                    assert(ios.width() == 0);
4307                                }
4308                            }
4309                            ios.imbue(lg);
4310                            {
4311                                ios.width(0);
4312                                {
4313                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4314                                    std::string ex(str, iter.base());
4315                                    assert(ex == "1;23457e+09");
4316                                    assert(ios.width() == 0);
4317                                }
4318                                ios.width(25);
4319                                left(ios);
4320                                {
4321                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4322                                    std::string ex(str, iter.base());
4323                                    assert(ex == "1;23457e+09**************");
4324                                    assert(ios.width() == 0);
4325                                }
4326                                ios.width(25);
4327                                right(ios);
4328                                {
4329                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4330                                    std::string ex(str, iter.base());
4331                                    assert(ex == "**************1;23457e+09");
4332                                    assert(ios.width() == 0);
4333                                }
4334                                ios.width(25);
4335                                internal(ios);
4336                                {
4337                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4338                                    std::string ex(str, iter.base());
4339                                    assert(ex == "**************1;23457e+09");
4340                                    assert(ios.width() == 0);
4341                                }
4342                            }
4343                        }
4344                    }
4345                    showpos(ios);
4346                    {
4347                        noshowpoint(ios);
4348                        {
4349                            ios.imbue(lc);
4350                            {
4351                                ios.width(0);
4352                                {
4353                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4354                                    std::string ex(str, iter.base());
4355                                    assert(ex == "+1.23457e+09");
4356                                    assert(ios.width() == 0);
4357                                }
4358                                ios.width(25);
4359                                left(ios);
4360                                {
4361                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4362                                    std::string ex(str, iter.base());
4363                                    assert(ex == "+1.23457e+09*************");
4364                                    assert(ios.width() == 0);
4365                                }
4366                                ios.width(25);
4367                                right(ios);
4368                                {
4369                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4370                                    std::string ex(str, iter.base());
4371                                    assert(ex == "*************+1.23457e+09");
4372                                    assert(ios.width() == 0);
4373                                }
4374                                ios.width(25);
4375                                internal(ios);
4376                                {
4377                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4378                                    std::string ex(str, iter.base());
4379                                    assert(ex == "+*************1.23457e+09");
4380                                    assert(ios.width() == 0);
4381                                }
4382                            }
4383                            ios.imbue(lg);
4384                            {
4385                                ios.width(0);
4386                                {
4387                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4388                                    std::string ex(str, iter.base());
4389                                    assert(ex == "+1;23457e+09");
4390                                    assert(ios.width() == 0);
4391                                }
4392                                ios.width(25);
4393                                left(ios);
4394                                {
4395                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4396                                    std::string ex(str, iter.base());
4397                                    assert(ex == "+1;23457e+09*************");
4398                                    assert(ios.width() == 0);
4399                                }
4400                                ios.width(25);
4401                                right(ios);
4402                                {
4403                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4404                                    std::string ex(str, iter.base());
4405                                    assert(ex == "*************+1;23457e+09");
4406                                    assert(ios.width() == 0);
4407                                }
4408                                ios.width(25);
4409                                internal(ios);
4410                                {
4411                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4412                                    std::string ex(str, iter.base());
4413                                    assert(ex == "+*************1;23457e+09");
4414                                    assert(ios.width() == 0);
4415                                }
4416                            }
4417                        }
4418                        showpoint(ios);
4419                        {
4420                            ios.imbue(lc);
4421                            {
4422                                ios.width(0);
4423                                {
4424                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4425                                    std::string ex(str, iter.base());
4426                                    assert(ex == "+1.23457e+09");
4427                                    assert(ios.width() == 0);
4428                                }
4429                                ios.width(25);
4430                                left(ios);
4431                                {
4432                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4433                                    std::string ex(str, iter.base());
4434                                    assert(ex == "+1.23457e+09*************");
4435                                    assert(ios.width() == 0);
4436                                }
4437                                ios.width(25);
4438                                right(ios);
4439                                {
4440                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4441                                    std::string ex(str, iter.base());
4442                                    assert(ex == "*************+1.23457e+09");
4443                                    assert(ios.width() == 0);
4444                                }
4445                                ios.width(25);
4446                                internal(ios);
4447                                {
4448                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4449                                    std::string ex(str, iter.base());
4450                                    assert(ex == "+*************1.23457e+09");
4451                                    assert(ios.width() == 0);
4452                                }
4453                            }
4454                            ios.imbue(lg);
4455                            {
4456                                ios.width(0);
4457                                {
4458                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4459                                    std::string ex(str, iter.base());
4460                                    assert(ex == "+1;23457e+09");
4461                                    assert(ios.width() == 0);
4462                                }
4463                                ios.width(25);
4464                                left(ios);
4465                                {
4466                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4467                                    std::string ex(str, iter.base());
4468                                    assert(ex == "+1;23457e+09*************");
4469                                    assert(ios.width() == 0);
4470                                }
4471                                ios.width(25);
4472                                right(ios);
4473                                {
4474                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4475                                    std::string ex(str, iter.base());
4476                                    assert(ex == "*************+1;23457e+09");
4477                                    assert(ios.width() == 0);
4478                                }
4479                                ios.width(25);
4480                                internal(ios);
4481                                {
4482                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4483                                    std::string ex(str, iter.base());
4484                                    assert(ex == "+*************1;23457e+09");
4485                                    assert(ios.width() == 0);
4486                                }
4487                            }
4488                        }
4489                    }
4490                }
4491                uppercase(ios);
4492                {
4493                    noshowpos(ios);
4494                    {
4495                        noshowpoint(ios);
4496                        {
4497                            ios.imbue(lc);
4498                            {
4499                                ios.width(0);
4500                                {
4501                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4502                                    std::string ex(str, iter.base());
4503                                    assert(ex == "1.23457E+09");
4504                                    assert(ios.width() == 0);
4505                                }
4506                                ios.width(25);
4507                                left(ios);
4508                                {
4509                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4510                                    std::string ex(str, iter.base());
4511                                    assert(ex == "1.23457E+09**************");
4512                                    assert(ios.width() == 0);
4513                                }
4514                                ios.width(25);
4515                                right(ios);
4516                                {
4517                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4518                                    std::string ex(str, iter.base());
4519                                    assert(ex == "**************1.23457E+09");
4520                                    assert(ios.width() == 0);
4521                                }
4522                                ios.width(25);
4523                                internal(ios);
4524                                {
4525                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4526                                    std::string ex(str, iter.base());
4527                                    assert(ex == "**************1.23457E+09");
4528                                    assert(ios.width() == 0);
4529                                }
4530                            }
4531                            ios.imbue(lg);
4532                            {
4533                                ios.width(0);
4534                                {
4535                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4536                                    std::string ex(str, iter.base());
4537                                    assert(ex == "1;23457E+09");
4538                                    assert(ios.width() == 0);
4539                                }
4540                                ios.width(25);
4541                                left(ios);
4542                                {
4543                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4544                                    std::string ex(str, iter.base());
4545                                    assert(ex == "1;23457E+09**************");
4546                                    assert(ios.width() == 0);
4547                                }
4548                                ios.width(25);
4549                                right(ios);
4550                                {
4551                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4552                                    std::string ex(str, iter.base());
4553                                    assert(ex == "**************1;23457E+09");
4554                                    assert(ios.width() == 0);
4555                                }
4556                                ios.width(25);
4557                                internal(ios);
4558                                {
4559                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4560                                    std::string ex(str, iter.base());
4561                                    assert(ex == "**************1;23457E+09");
4562                                    assert(ios.width() == 0);
4563                                }
4564                            }
4565                        }
4566                        showpoint(ios);
4567                        {
4568                            ios.imbue(lc);
4569                            {
4570                                ios.width(0);
4571                                {
4572                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4573                                    std::string ex(str, iter.base());
4574                                    assert(ex == "1.23457E+09");
4575                                    assert(ios.width() == 0);
4576                                }
4577                                ios.width(25);
4578                                left(ios);
4579                                {
4580                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4581                                    std::string ex(str, iter.base());
4582                                    assert(ex == "1.23457E+09**************");
4583                                    assert(ios.width() == 0);
4584                                }
4585                                ios.width(25);
4586                                right(ios);
4587                                {
4588                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4589                                    std::string ex(str, iter.base());
4590                                    assert(ex == "**************1.23457E+09");
4591                                    assert(ios.width() == 0);
4592                                }
4593                                ios.width(25);
4594                                internal(ios);
4595                                {
4596                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4597                                    std::string ex(str, iter.base());
4598                                    assert(ex == "**************1.23457E+09");
4599                                    assert(ios.width() == 0);
4600                                }
4601                            }
4602                            ios.imbue(lg);
4603                            {
4604                                ios.width(0);
4605                                {
4606                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4607                                    std::string ex(str, iter.base());
4608                                    assert(ex == "1;23457E+09");
4609                                    assert(ios.width() == 0);
4610                                }
4611                                ios.width(25);
4612                                left(ios);
4613                                {
4614                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4615                                    std::string ex(str, iter.base());
4616                                    assert(ex == "1;23457E+09**************");
4617                                    assert(ios.width() == 0);
4618                                }
4619                                ios.width(25);
4620                                right(ios);
4621                                {
4622                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4623                                    std::string ex(str, iter.base());
4624                                    assert(ex == "**************1;23457E+09");
4625                                    assert(ios.width() == 0);
4626                                }
4627                                ios.width(25);
4628                                internal(ios);
4629                                {
4630                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4631                                    std::string ex(str, iter.base());
4632                                    assert(ex == "**************1;23457E+09");
4633                                    assert(ios.width() == 0);
4634                                }
4635                            }
4636                        }
4637                    }
4638                    showpos(ios);
4639                    {
4640                        noshowpoint(ios);
4641                        {
4642                            ios.imbue(lc);
4643                            {
4644                                ios.width(0);
4645                                {
4646                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4647                                    std::string ex(str, iter.base());
4648                                    assert(ex == "+1.23457E+09");
4649                                    assert(ios.width() == 0);
4650                                }
4651                                ios.width(25);
4652                                left(ios);
4653                                {
4654                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4655                                    std::string ex(str, iter.base());
4656                                    assert(ex == "+1.23457E+09*************");
4657                                    assert(ios.width() == 0);
4658                                }
4659                                ios.width(25);
4660                                right(ios);
4661                                {
4662                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4663                                    std::string ex(str, iter.base());
4664                                    assert(ex == "*************+1.23457E+09");
4665                                    assert(ios.width() == 0);
4666                                }
4667                                ios.width(25);
4668                                internal(ios);
4669                                {
4670                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4671                                    std::string ex(str, iter.base());
4672                                    assert(ex == "+*************1.23457E+09");
4673                                    assert(ios.width() == 0);
4674                                }
4675                            }
4676                            ios.imbue(lg);
4677                            {
4678                                ios.width(0);
4679                                {
4680                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4681                                    std::string ex(str, iter.base());
4682                                    assert(ex == "+1;23457E+09");
4683                                    assert(ios.width() == 0);
4684                                }
4685                                ios.width(25);
4686                                left(ios);
4687                                {
4688                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4689                                    std::string ex(str, iter.base());
4690                                    assert(ex == "+1;23457E+09*************");
4691                                    assert(ios.width() == 0);
4692                                }
4693                                ios.width(25);
4694                                right(ios);
4695                                {
4696                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4697                                    std::string ex(str, iter.base());
4698                                    assert(ex == "*************+1;23457E+09");
4699                                    assert(ios.width() == 0);
4700                                }
4701                                ios.width(25);
4702                                internal(ios);
4703                                {
4704                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4705                                    std::string ex(str, iter.base());
4706                                    assert(ex == "+*************1;23457E+09");
4707                                    assert(ios.width() == 0);
4708                                }
4709                            }
4710                        }
4711                        showpoint(ios);
4712                        {
4713                            ios.imbue(lc);
4714                            {
4715                                ios.width(0);
4716                                {
4717                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4718                                    std::string ex(str, iter.base());
4719                                    assert(ex == "+1.23457E+09");
4720                                    assert(ios.width() == 0);
4721                                }
4722                                ios.width(25);
4723                                left(ios);
4724                                {
4725                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4726                                    std::string ex(str, iter.base());
4727                                    assert(ex == "+1.23457E+09*************");
4728                                    assert(ios.width() == 0);
4729                                }
4730                                ios.width(25);
4731                                right(ios);
4732                                {
4733                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4734                                    std::string ex(str, iter.base());
4735                                    assert(ex == "*************+1.23457E+09");
4736                                    assert(ios.width() == 0);
4737                                }
4738                                ios.width(25);
4739                                internal(ios);
4740                                {
4741                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4742                                    std::string ex(str, iter.base());
4743                                    assert(ex == "+*************1.23457E+09");
4744                                    assert(ios.width() == 0);
4745                                }
4746                            }
4747                            ios.imbue(lg);
4748                            {
4749                                ios.width(0);
4750                                {
4751                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4752                                    std::string ex(str, iter.base());
4753                                    assert(ex == "+1;23457E+09");
4754                                    assert(ios.width() == 0);
4755                                }
4756                                ios.width(25);
4757                                left(ios);
4758                                {
4759                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4760                                    std::string ex(str, iter.base());
4761                                    assert(ex == "+1;23457E+09*************");
4762                                    assert(ios.width() == 0);
4763                                }
4764                                ios.width(25);
4765                                right(ios);
4766                                {
4767                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4768                                    std::string ex(str, iter.base());
4769                                    assert(ex == "*************+1;23457E+09");
4770                                    assert(ios.width() == 0);
4771                                }
4772                                ios.width(25);
4773                                internal(ios);
4774                                {
4775                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4776                                    std::string ex(str, iter.base());
4777                                    assert(ex == "+*************1;23457E+09");
4778                                    assert(ios.width() == 0);
4779                                }
4780                            }
4781                        }
4782                    }
4783                }
4784            }
4785            ios.precision(16);
4786            {
4787                nouppercase(ios);
4788                {
4789                    noshowpos(ios);
4790                    {
4791                        noshowpoint(ios);
4792                        {
4793                            ios.imbue(lc);
4794                            {
4795                                ios.width(0);
4796                                {
4797                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4798                                    std::string ex(str, iter.base());
4799                                    assert(ex == "1234567890.125");
4800                                    assert(ios.width() == 0);
4801                                }
4802                                ios.width(25);
4803                                left(ios);
4804                                {
4805                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4806                                    std::string ex(str, iter.base());
4807                                    assert(ex == "1234567890.125***********");
4808                                    assert(ios.width() == 0);
4809                                }
4810                                ios.width(25);
4811                                right(ios);
4812                                {
4813                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4814                                    std::string ex(str, iter.base());
4815                                    assert(ex == "***********1234567890.125");
4816                                    assert(ios.width() == 0);
4817                                }
4818                                ios.width(25);
4819                                internal(ios);
4820                                {
4821                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4822                                    std::string ex(str, iter.base());
4823                                    assert(ex == "***********1234567890.125");
4824                                    assert(ios.width() == 0);
4825                                }
4826                            }
4827                            ios.imbue(lg);
4828                            {
4829                                ios.width(0);
4830                                {
4831                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4832                                    std::string ex(str, iter.base());
4833                                    assert(ex == "1_234_567_89_0;125");
4834                                    assert(ios.width() == 0);
4835                                }
4836                                ios.width(25);
4837                                left(ios);
4838                                {
4839                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4840                                    std::string ex(str, iter.base());
4841                                    assert(ex == "1_234_567_89_0;125*******");
4842                                    assert(ios.width() == 0);
4843                                }
4844                                ios.width(25);
4845                                right(ios);
4846                                {
4847                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4848                                    std::string ex(str, iter.base());
4849                                    assert(ex == "*******1_234_567_89_0;125");
4850                                    assert(ios.width() == 0);
4851                                }
4852                                ios.width(25);
4853                                internal(ios);
4854                                {
4855                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4856                                    std::string ex(str, iter.base());
4857                                    assert(ex == "*******1_234_567_89_0;125");
4858                                    assert(ios.width() == 0);
4859                                }
4860                            }
4861                        }
4862                        showpoint(ios);
4863                        {
4864                            ios.imbue(lc);
4865                            {
4866                                ios.width(0);
4867                                {
4868                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4869                                    std::string ex(str, iter.base());
4870                                    assert(ex == "1234567890.125000");
4871                                    assert(ios.width() == 0);
4872                                }
4873                                ios.width(25);
4874                                left(ios);
4875                                {
4876                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4877                                    std::string ex(str, iter.base());
4878                                    assert(ex == "1234567890.125000********");
4879                                    assert(ios.width() == 0);
4880                                }
4881                                ios.width(25);
4882                                right(ios);
4883                                {
4884                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4885                                    std::string ex(str, iter.base());
4886                                    assert(ex == "********1234567890.125000");
4887                                    assert(ios.width() == 0);
4888                                }
4889                                ios.width(25);
4890                                internal(ios);
4891                                {
4892                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4893                                    std::string ex(str, iter.base());
4894                                    assert(ex == "********1234567890.125000");
4895                                    assert(ios.width() == 0);
4896                                }
4897                            }
4898                            ios.imbue(lg);
4899                            {
4900                                ios.width(0);
4901                                {
4902                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4903                                    std::string ex(str, iter.base());
4904                                    assert(ex == "1_234_567_89_0;125000");
4905                                    assert(ios.width() == 0);
4906                                }
4907                                ios.width(25);
4908                                left(ios);
4909                                {
4910                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4911                                    std::string ex(str, iter.base());
4912                                    assert(ex == "1_234_567_89_0;125000****");
4913                                    assert(ios.width() == 0);
4914                                }
4915                                ios.width(25);
4916                                right(ios);
4917                                {
4918                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4919                                    std::string ex(str, iter.base());
4920                                    assert(ex == "****1_234_567_89_0;125000");
4921                                    assert(ios.width() == 0);
4922                                }
4923                                ios.width(25);
4924                                internal(ios);
4925                                {
4926                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4927                                    std::string ex(str, iter.base());
4928                                    assert(ex == "****1_234_567_89_0;125000");
4929                                    assert(ios.width() == 0);
4930                                }
4931                            }
4932                        }
4933                    }
4934                    showpos(ios);
4935                    {
4936                        noshowpoint(ios);
4937                        {
4938                            ios.imbue(lc);
4939                            {
4940                                ios.width(0);
4941                                {
4942                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4943                                    std::string ex(str, iter.base());
4944                                    assert(ex == "+1234567890.125");
4945                                    assert(ios.width() == 0);
4946                                }
4947                                ios.width(25);
4948                                left(ios);
4949                                {
4950                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4951                                    std::string ex(str, iter.base());
4952                                    assert(ex == "+1234567890.125**********");
4953                                    assert(ios.width() == 0);
4954                                }
4955                                ios.width(25);
4956                                right(ios);
4957                                {
4958                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4959                                    std::string ex(str, iter.base());
4960                                    assert(ex == "**********+1234567890.125");
4961                                    assert(ios.width() == 0);
4962                                }
4963                                ios.width(25);
4964                                internal(ios);
4965                                {
4966                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4967                                    std::string ex(str, iter.base());
4968                                    assert(ex == "+**********1234567890.125");
4969                                    assert(ios.width() == 0);
4970                                }
4971                            }
4972                            ios.imbue(lg);
4973                            {
4974                                ios.width(0);
4975                                {
4976                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4977                                    std::string ex(str, iter.base());
4978                                    assert(ex == "+1_234_567_89_0;125");
4979                                    assert(ios.width() == 0);
4980                                }
4981                                ios.width(25);
4982                                left(ios);
4983                                {
4984                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4985                                    std::string ex(str, iter.base());
4986                                    assert(ex == "+1_234_567_89_0;125******");
4987                                    assert(ios.width() == 0);
4988                                }
4989                                ios.width(25);
4990                                right(ios);
4991                                {
4992                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
4993                                    std::string ex(str, iter.base());
4994                                    assert(ex == "******+1_234_567_89_0;125");
4995                                    assert(ios.width() == 0);
4996                                }
4997                                ios.width(25);
4998                                internal(ios);
4999                                {
5000                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5001                                    std::string ex(str, iter.base());
5002                                    assert(ex == "+******1_234_567_89_0;125");
5003                                    assert(ios.width() == 0);
5004                                }
5005                            }
5006                        }
5007                        showpoint(ios);
5008                        {
5009                            ios.imbue(lc);
5010                            {
5011                                ios.width(0);
5012                                {
5013                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5014                                    std::string ex(str, iter.base());
5015                                    assert(ex == "+1234567890.125000");
5016                                    assert(ios.width() == 0);
5017                                }
5018                                ios.width(25);
5019                                left(ios);
5020                                {
5021                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5022                                    std::string ex(str, iter.base());
5023                                    assert(ex == "+1234567890.125000*******");
5024                                    assert(ios.width() == 0);
5025                                }
5026                                ios.width(25);
5027                                right(ios);
5028                                {
5029                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5030                                    std::string ex(str, iter.base());
5031                                    assert(ex == "*******+1234567890.125000");
5032                                    assert(ios.width() == 0);
5033                                }
5034                                ios.width(25);
5035                                internal(ios);
5036                                {
5037                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5038                                    std::string ex(str, iter.base());
5039                                    assert(ex == "+*******1234567890.125000");
5040                                    assert(ios.width() == 0);
5041                                }
5042                            }
5043                            ios.imbue(lg);
5044                            {
5045                                ios.width(0);
5046                                {
5047                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5048                                    std::string ex(str, iter.base());
5049                                    assert(ex == "+1_234_567_89_0;125000");
5050                                    assert(ios.width() == 0);
5051                                }
5052                                ios.width(25);
5053                                left(ios);
5054                                {
5055                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5056                                    std::string ex(str, iter.base());
5057                                    assert(ex == "+1_234_567_89_0;125000***");
5058                                    assert(ios.width() == 0);
5059                                }
5060                                ios.width(25);
5061                                right(ios);
5062                                {
5063                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5064                                    std::string ex(str, iter.base());
5065                                    assert(ex == "***+1_234_567_89_0;125000");
5066                                    assert(ios.width() == 0);
5067                                }
5068                                ios.width(25);
5069                                internal(ios);
5070                                {
5071                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5072                                    std::string ex(str, iter.base());
5073                                    assert(ex == "+***1_234_567_89_0;125000");
5074                                    assert(ios.width() == 0);
5075                                }
5076                            }
5077                        }
5078                    }
5079                }
5080                uppercase(ios);
5081                {
5082                    noshowpos(ios);
5083                    {
5084                        noshowpoint(ios);
5085                        {
5086                            ios.imbue(lc);
5087                            {
5088                                ios.width(0);
5089                                {
5090                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5091                                    std::string ex(str, iter.base());
5092                                    assert(ex == "1234567890.125");
5093                                    assert(ios.width() == 0);
5094                                }
5095                                ios.width(25);
5096                                left(ios);
5097                                {
5098                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5099                                    std::string ex(str, iter.base());
5100                                    assert(ex == "1234567890.125***********");
5101                                    assert(ios.width() == 0);
5102                                }
5103                                ios.width(25);
5104                                right(ios);
5105                                {
5106                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5107                                    std::string ex(str, iter.base());
5108                                    assert(ex == "***********1234567890.125");
5109                                    assert(ios.width() == 0);
5110                                }
5111                                ios.width(25);
5112                                internal(ios);
5113                                {
5114                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5115                                    std::string ex(str, iter.base());
5116                                    assert(ex == "***********1234567890.125");
5117                                    assert(ios.width() == 0);
5118                                }
5119                            }
5120                            ios.imbue(lg);
5121                            {
5122                                ios.width(0);
5123                                {
5124                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5125                                    std::string ex(str, iter.base());
5126                                    assert(ex == "1_234_567_89_0;125");
5127                                    assert(ios.width() == 0);
5128                                }
5129                                ios.width(25);
5130                                left(ios);
5131                                {
5132                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5133                                    std::string ex(str, iter.base());
5134                                    assert(ex == "1_234_567_89_0;125*******");
5135                                    assert(ios.width() == 0);
5136                                }
5137                                ios.width(25);
5138                                right(ios);
5139                                {
5140                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5141                                    std::string ex(str, iter.base());
5142                                    assert(ex == "*******1_234_567_89_0;125");
5143                                    assert(ios.width() == 0);
5144                                }
5145                                ios.width(25);
5146                                internal(ios);
5147                                {
5148                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5149                                    std::string ex(str, iter.base());
5150                                    assert(ex == "*******1_234_567_89_0;125");
5151                                    assert(ios.width() == 0);
5152                                }
5153                            }
5154                        }
5155                        showpoint(ios);
5156                        {
5157                            ios.imbue(lc);
5158                            {
5159                                ios.width(0);
5160                                {
5161                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5162                                    std::string ex(str, iter.base());
5163                                    assert(ex == "1234567890.125000");
5164                                    assert(ios.width() == 0);
5165                                }
5166                                ios.width(25);
5167                                left(ios);
5168                                {
5169                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5170                                    std::string ex(str, iter.base());
5171                                    assert(ex == "1234567890.125000********");
5172                                    assert(ios.width() == 0);
5173                                }
5174                                ios.width(25);
5175                                right(ios);
5176                                {
5177                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5178                                    std::string ex(str, iter.base());
5179                                    assert(ex == "********1234567890.125000");
5180                                    assert(ios.width() == 0);
5181                                }
5182                                ios.width(25);
5183                                internal(ios);
5184                                {
5185                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5186                                    std::string ex(str, iter.base());
5187                                    assert(ex == "********1234567890.125000");
5188                                    assert(ios.width() == 0);
5189                                }
5190                            }
5191                            ios.imbue(lg);
5192                            {
5193                                ios.width(0);
5194                                {
5195                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5196                                    std::string ex(str, iter.base());
5197                                    assert(ex == "1_234_567_89_0;125000");
5198                                    assert(ios.width() == 0);
5199                                }
5200                                ios.width(25);
5201                                left(ios);
5202                                {
5203                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5204                                    std::string ex(str, iter.base());
5205                                    assert(ex == "1_234_567_89_0;125000****");
5206                                    assert(ios.width() == 0);
5207                                }
5208                                ios.width(25);
5209                                right(ios);
5210                                {
5211                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5212                                    std::string ex(str, iter.base());
5213                                    assert(ex == "****1_234_567_89_0;125000");
5214                                    assert(ios.width() == 0);
5215                                }
5216                                ios.width(25);
5217                                internal(ios);
5218                                {
5219                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5220                                    std::string ex(str, iter.base());
5221                                    assert(ex == "****1_234_567_89_0;125000");
5222                                    assert(ios.width() == 0);
5223                                }
5224                            }
5225                        }
5226                    }
5227                    showpos(ios);
5228                    {
5229                        noshowpoint(ios);
5230                        {
5231                            ios.imbue(lc);
5232                            {
5233                                ios.width(0);
5234                                {
5235                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5236                                    std::string ex(str, iter.base());
5237                                    assert(ex == "+1234567890.125");
5238                                    assert(ios.width() == 0);
5239                                }
5240                                ios.width(25);
5241                                left(ios);
5242                                {
5243                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5244                                    std::string ex(str, iter.base());
5245                                    assert(ex == "+1234567890.125**********");
5246                                    assert(ios.width() == 0);
5247                                }
5248                                ios.width(25);
5249                                right(ios);
5250                                {
5251                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5252                                    std::string ex(str, iter.base());
5253                                    assert(ex == "**********+1234567890.125");
5254                                    assert(ios.width() == 0);
5255                                }
5256                                ios.width(25);
5257                                internal(ios);
5258                                {
5259                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5260                                    std::string ex(str, iter.base());
5261                                    assert(ex == "+**********1234567890.125");
5262                                    assert(ios.width() == 0);
5263                                }
5264                            }
5265                            ios.imbue(lg);
5266                            {
5267                                ios.width(0);
5268                                {
5269                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5270                                    std::string ex(str, iter.base());
5271                                    assert(ex == "+1_234_567_89_0;125");
5272                                    assert(ios.width() == 0);
5273                                }
5274                                ios.width(25);
5275                                left(ios);
5276                                {
5277                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5278                                    std::string ex(str, iter.base());
5279                                    assert(ex == "+1_234_567_89_0;125******");
5280                                    assert(ios.width() == 0);
5281                                }
5282                                ios.width(25);
5283                                right(ios);
5284                                {
5285                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5286                                    std::string ex(str, iter.base());
5287                                    assert(ex == "******+1_234_567_89_0;125");
5288                                    assert(ios.width() == 0);
5289                                }
5290                                ios.width(25);
5291                                internal(ios);
5292                                {
5293                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5294                                    std::string ex(str, iter.base());
5295                                    assert(ex == "+******1_234_567_89_0;125");
5296                                    assert(ios.width() == 0);
5297                                }
5298                            }
5299                        }
5300                        showpoint(ios);
5301                        {
5302                            ios.imbue(lc);
5303                            {
5304                                ios.width(0);
5305                                {
5306                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5307                                    std::string ex(str, iter.base());
5308                                    assert(ex == "+1234567890.125000");
5309                                    assert(ios.width() == 0);
5310                                }
5311                                ios.width(25);
5312                                left(ios);
5313                                {
5314                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5315                                    std::string ex(str, iter.base());
5316                                    assert(ex == "+1234567890.125000*******");
5317                                    assert(ios.width() == 0);
5318                                }
5319                                ios.width(25);
5320                                right(ios);
5321                                {
5322                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5323                                    std::string ex(str, iter.base());
5324                                    assert(ex == "*******+1234567890.125000");
5325                                    assert(ios.width() == 0);
5326                                }
5327                                ios.width(25);
5328                                internal(ios);
5329                                {
5330                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5331                                    std::string ex(str, iter.base());
5332                                    assert(ex == "+*******1234567890.125000");
5333                                    assert(ios.width() == 0);
5334                                }
5335                            }
5336                            ios.imbue(lg);
5337                            {
5338                                ios.width(0);
5339                                {
5340                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5341                                    std::string ex(str, iter.base());
5342                                    assert(ex == "+1_234_567_89_0;125000");
5343                                    assert(ios.width() == 0);
5344                                }
5345                                ios.width(25);
5346                                left(ios);
5347                                {
5348                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5349                                    std::string ex(str, iter.base());
5350                                    assert(ex == "+1_234_567_89_0;125000***");
5351                                    assert(ios.width() == 0);
5352                                }
5353                                ios.width(25);
5354                                right(ios);
5355                                {
5356                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5357                                    std::string ex(str, iter.base());
5358                                    assert(ex == "***+1_234_567_89_0;125000");
5359                                    assert(ios.width() == 0);
5360                                }
5361                                ios.width(25);
5362                                internal(ios);
5363                                {
5364                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5365                                    std::string ex(str, iter.base());
5366                                    assert(ex == "+***1_234_567_89_0;125000");
5367                                    assert(ios.width() == 0);
5368                                }
5369                            }
5370                        }
5371                    }
5372                }
5373            }
5374            ios.precision(60);
5375            {
5376                nouppercase(ios);
5377                {
5378                    noshowpos(ios);
5379                    {
5380                        noshowpoint(ios);
5381                        {
5382                            ios.imbue(lc);
5383                            {
5384                                ios.width(0);
5385                                {
5386                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5387                                    std::string ex(str, iter.base());
5388                                    assert(ex == "1234567890.125");
5389                                    assert(ios.width() == 0);
5390                                }
5391                                ios.width(25);
5392                                left(ios);
5393                                {
5394                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5395                                    std::string ex(str, iter.base());
5396                                    assert(ex == "1234567890.125***********");
5397                                    assert(ios.width() == 0);
5398                                }
5399                                ios.width(25);
5400                                right(ios);
5401                                {
5402                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5403                                    std::string ex(str, iter.base());
5404                                    assert(ex == "***********1234567890.125");
5405                                    assert(ios.width() == 0);
5406                                }
5407                                ios.width(25);
5408                                internal(ios);
5409                                {
5410                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5411                                    std::string ex(str, iter.base());
5412                                    assert(ex == "***********1234567890.125");
5413                                    assert(ios.width() == 0);
5414                                }
5415                            }
5416                            ios.imbue(lg);
5417                            {
5418                                ios.width(0);
5419                                {
5420                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5421                                    std::string ex(str, iter.base());
5422                                    assert(ex == "1_234_567_89_0;125");
5423                                    assert(ios.width() == 0);
5424                                }
5425                                ios.width(25);
5426                                left(ios);
5427                                {
5428                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5429                                    std::string ex(str, iter.base());
5430                                    assert(ex == "1_234_567_89_0;125*******");
5431                                    assert(ios.width() == 0);
5432                                }
5433                                ios.width(25);
5434                                right(ios);
5435                                {
5436                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5437                                    std::string ex(str, iter.base());
5438                                    assert(ex == "*******1_234_567_89_0;125");
5439                                    assert(ios.width() == 0);
5440                                }
5441                                ios.width(25);
5442                                internal(ios);
5443                                {
5444                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5445                                    std::string ex(str, iter.base());
5446                                    assert(ex == "*******1_234_567_89_0;125");
5447                                    assert(ios.width() == 0);
5448                                }
5449                            }
5450                        }
5451                        showpoint(ios);
5452                        {
5453                            ios.imbue(lc);
5454                            {
5455                                ios.width(0);
5456                                {
5457                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5458                                    std::string ex(str, iter.base());
5459                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
5460                                    assert(ios.width() == 0);
5461                                }
5462                                ios.width(25);
5463                                left(ios);
5464                                {
5465                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5466                                    std::string ex(str, iter.base());
5467                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
5468                                    assert(ios.width() == 0);
5469                                }
5470                                ios.width(25);
5471                                right(ios);
5472                                {
5473                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5474                                    std::string ex(str, iter.base());
5475                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
5476                                    assert(ios.width() == 0);
5477                                }
5478                                ios.width(25);
5479                                internal(ios);
5480                                {
5481                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5482                                    std::string ex(str, iter.base());
5483                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
5484                                    assert(ios.width() == 0);
5485                                }
5486                            }
5487                            ios.imbue(lg);
5488                            {
5489                                ios.width(0);
5490                                {
5491                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5492                                    std::string ex(str, iter.base());
5493                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
5494                                    assert(ios.width() == 0);
5495                                }
5496                                ios.width(25);
5497                                left(ios);
5498                                {
5499                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5500                                    std::string ex(str, iter.base());
5501                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
5502                                    assert(ios.width() == 0);
5503                                }
5504                                ios.width(25);
5505                                right(ios);
5506                                {
5507                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5508                                    std::string ex(str, iter.base());
5509                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
5510                                    assert(ios.width() == 0);
5511                                }
5512                                ios.width(25);
5513                                internal(ios);
5514                                {
5515                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5516                                    std::string ex(str, iter.base());
5517                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
5518                                    assert(ios.width() == 0);
5519                                }
5520                            }
5521                        }
5522                    }
5523                    showpos(ios);
5524                    {
5525                        noshowpoint(ios);
5526                        {
5527                            ios.imbue(lc);
5528                            {
5529                                ios.width(0);
5530                                {
5531                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5532                                    std::string ex(str, iter.base());
5533                                    assert(ex == "+1234567890.125");
5534                                    assert(ios.width() == 0);
5535                                }
5536                                ios.width(25);
5537                                left(ios);
5538                                {
5539                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5540                                    std::string ex(str, iter.base());
5541                                    assert(ex == "+1234567890.125**********");
5542                                    assert(ios.width() == 0);
5543                                }
5544                                ios.width(25);
5545                                right(ios);
5546                                {
5547                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5548                                    std::string ex(str, iter.base());
5549                                    assert(ex == "**********+1234567890.125");
5550                                    assert(ios.width() == 0);
5551                                }
5552                                ios.width(25);
5553                                internal(ios);
5554                                {
5555                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5556                                    std::string ex(str, iter.base());
5557                                    assert(ex == "+**********1234567890.125");
5558                                    assert(ios.width() == 0);
5559                                }
5560                            }
5561                            ios.imbue(lg);
5562                            {
5563                                ios.width(0);
5564                                {
5565                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5566                                    std::string ex(str, iter.base());
5567                                    assert(ex == "+1_234_567_89_0;125");
5568                                    assert(ios.width() == 0);
5569                                }
5570                                ios.width(25);
5571                                left(ios);
5572                                {
5573                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5574                                    std::string ex(str, iter.base());
5575                                    assert(ex == "+1_234_567_89_0;125******");
5576                                    assert(ios.width() == 0);
5577                                }
5578                                ios.width(25);
5579                                right(ios);
5580                                {
5581                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5582                                    std::string ex(str, iter.base());
5583                                    assert(ex == "******+1_234_567_89_0;125");
5584                                    assert(ios.width() == 0);
5585                                }
5586                                ios.width(25);
5587                                internal(ios);
5588                                {
5589                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5590                                    std::string ex(str, iter.base());
5591                                    assert(ex == "+******1_234_567_89_0;125");
5592                                    assert(ios.width() == 0);
5593                                }
5594                            }
5595                        }
5596                        showpoint(ios);
5597                        {
5598                            ios.imbue(lc);
5599                            {
5600                                ios.width(0);
5601                                {
5602                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5603                                    std::string ex(str, iter.base());
5604                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
5605                                    assert(ios.width() == 0);
5606                                }
5607                                ios.width(25);
5608                                left(ios);
5609                                {
5610                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5611                                    std::string ex(str, iter.base());
5612                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
5613                                    assert(ios.width() == 0);
5614                                }
5615                                ios.width(25);
5616                                right(ios);
5617                                {
5618                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5619                                    std::string ex(str, iter.base());
5620                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
5621                                    assert(ios.width() == 0);
5622                                }
5623                                ios.width(25);
5624                                internal(ios);
5625                                {
5626                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5627                                    std::string ex(str, iter.base());
5628                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
5629                                    assert(ios.width() == 0);
5630                                }
5631                            }
5632                            ios.imbue(lg);
5633                            {
5634                                ios.width(0);
5635                                {
5636                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5637                                    std::string ex(str, iter.base());
5638                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
5639                                    assert(ios.width() == 0);
5640                                }
5641                                ios.width(25);
5642                                left(ios);
5643                                {
5644                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5645                                    std::string ex(str, iter.base());
5646                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
5647                                    assert(ios.width() == 0);
5648                                }
5649                                ios.width(25);
5650                                right(ios);
5651                                {
5652                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5653                                    std::string ex(str, iter.base());
5654                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
5655                                    assert(ios.width() == 0);
5656                                }
5657                                ios.width(25);
5658                                internal(ios);
5659                                {
5660                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5661                                    std::string ex(str, iter.base());
5662                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
5663                                    assert(ios.width() == 0);
5664                                }
5665                            }
5666                        }
5667                    }
5668                }
5669                uppercase(ios);
5670                {
5671                    noshowpos(ios);
5672                    {
5673                        noshowpoint(ios);
5674                        {
5675                            ios.imbue(lc);
5676                            {
5677                                ios.width(0);
5678                                {
5679                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5680                                    std::string ex(str, iter.base());
5681                                    assert(ex == "1234567890.125");
5682                                    assert(ios.width() == 0);
5683                                }
5684                                ios.width(25);
5685                                left(ios);
5686                                {
5687                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5688                                    std::string ex(str, iter.base());
5689                                    assert(ex == "1234567890.125***********");
5690                                    assert(ios.width() == 0);
5691                                }
5692                                ios.width(25);
5693                                right(ios);
5694                                {
5695                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5696                                    std::string ex(str, iter.base());
5697                                    assert(ex == "***********1234567890.125");
5698                                    assert(ios.width() == 0);
5699                                }
5700                                ios.width(25);
5701                                internal(ios);
5702                                {
5703                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5704                                    std::string ex(str, iter.base());
5705                                    assert(ex == "***********1234567890.125");
5706                                    assert(ios.width() == 0);
5707                                }
5708                            }
5709                            ios.imbue(lg);
5710                            {
5711                                ios.width(0);
5712                                {
5713                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5714                                    std::string ex(str, iter.base());
5715                                    assert(ex == "1_234_567_89_0;125");
5716                                    assert(ios.width() == 0);
5717                                }
5718                                ios.width(25);
5719                                left(ios);
5720                                {
5721                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5722                                    std::string ex(str, iter.base());
5723                                    assert(ex == "1_234_567_89_0;125*******");
5724                                    assert(ios.width() == 0);
5725                                }
5726                                ios.width(25);
5727                                right(ios);
5728                                {
5729                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5730                                    std::string ex(str, iter.base());
5731                                    assert(ex == "*******1_234_567_89_0;125");
5732                                    assert(ios.width() == 0);
5733                                }
5734                                ios.width(25);
5735                                internal(ios);
5736                                {
5737                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5738                                    std::string ex(str, iter.base());
5739                                    assert(ex == "*******1_234_567_89_0;125");
5740                                    assert(ios.width() == 0);
5741                                }
5742                            }
5743                        }
5744                        showpoint(ios);
5745                        {
5746                            ios.imbue(lc);
5747                            {
5748                                ios.width(0);
5749                                {
5750                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5751                                    std::string ex(str, iter.base());
5752                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
5753                                    assert(ios.width() == 0);
5754                                }
5755                                ios.width(25);
5756                                left(ios);
5757                                {
5758                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5759                                    std::string ex(str, iter.base());
5760                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
5761                                    assert(ios.width() == 0);
5762                                }
5763                                ios.width(25);
5764                                right(ios);
5765                                {
5766                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5767                                    std::string ex(str, iter.base());
5768                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
5769                                    assert(ios.width() == 0);
5770                                }
5771                                ios.width(25);
5772                                internal(ios);
5773                                {
5774                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5775                                    std::string ex(str, iter.base());
5776                                    assert(ex == "1234567890.12500000000000000000000000000000000000000000000000");
5777                                    assert(ios.width() == 0);
5778                                }
5779                            }
5780                            ios.imbue(lg);
5781                            {
5782                                ios.width(0);
5783                                {
5784                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5785                                    std::string ex(str, iter.base());
5786                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
5787                                    assert(ios.width() == 0);
5788                                }
5789                                ios.width(25);
5790                                left(ios);
5791                                {
5792                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5793                                    std::string ex(str, iter.base());
5794                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
5795                                    assert(ios.width() == 0);
5796                                }
5797                                ios.width(25);
5798                                right(ios);
5799                                {
5800                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5801                                    std::string ex(str, iter.base());
5802                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
5803                                    assert(ios.width() == 0);
5804                                }
5805                                ios.width(25);
5806                                internal(ios);
5807                                {
5808                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5809                                    std::string ex(str, iter.base());
5810                                    assert(ex == "1_234_567_89_0;12500000000000000000000000000000000000000000000000");
5811                                    assert(ios.width() == 0);
5812                                }
5813                            }
5814                        }
5815                    }
5816                    showpos(ios);
5817                    {
5818                        noshowpoint(ios);
5819                        {
5820                            ios.imbue(lc);
5821                            {
5822                                ios.width(0);
5823                                {
5824                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5825                                    std::string ex(str, iter.base());
5826                                    assert(ex == "+1234567890.125");
5827                                    assert(ios.width() == 0);
5828                                }
5829                                ios.width(25);
5830                                left(ios);
5831                                {
5832                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5833                                    std::string ex(str, iter.base());
5834                                    assert(ex == "+1234567890.125**********");
5835                                    assert(ios.width() == 0);
5836                                }
5837                                ios.width(25);
5838                                right(ios);
5839                                {
5840                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5841                                    std::string ex(str, iter.base());
5842                                    assert(ex == "**********+1234567890.125");
5843                                    assert(ios.width() == 0);
5844                                }
5845                                ios.width(25);
5846                                internal(ios);
5847                                {
5848                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5849                                    std::string ex(str, iter.base());
5850                                    assert(ex == "+**********1234567890.125");
5851                                    assert(ios.width() == 0);
5852                                }
5853                            }
5854                            ios.imbue(lg);
5855                            {
5856                                ios.width(0);
5857                                {
5858                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5859                                    std::string ex(str, iter.base());
5860                                    assert(ex == "+1_234_567_89_0;125");
5861                                    assert(ios.width() == 0);
5862                                }
5863                                ios.width(25);
5864                                left(ios);
5865                                {
5866                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5867                                    std::string ex(str, iter.base());
5868                                    assert(ex == "+1_234_567_89_0;125******");
5869                                    assert(ios.width() == 0);
5870                                }
5871                                ios.width(25);
5872                                right(ios);
5873                                {
5874                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5875                                    std::string ex(str, iter.base());
5876                                    assert(ex == "******+1_234_567_89_0;125");
5877                                    assert(ios.width() == 0);
5878                                }
5879                                ios.width(25);
5880                                internal(ios);
5881                                {
5882                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5883                                    std::string ex(str, iter.base());
5884                                    assert(ex == "+******1_234_567_89_0;125");
5885                                    assert(ios.width() == 0);
5886                                }
5887                            }
5888                        }
5889                        showpoint(ios);
5890                        {
5891                            ios.imbue(lc);
5892                            {
5893                                ios.width(0);
5894                                {
5895                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5896                                    std::string ex(str, iter.base());
5897                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
5898                                    assert(ios.width() == 0);
5899                                }
5900                                ios.width(25);
5901                                left(ios);
5902                                {
5903                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5904                                    std::string ex(str, iter.base());
5905                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
5906                                    assert(ios.width() == 0);
5907                                }
5908                                ios.width(25);
5909                                right(ios);
5910                                {
5911                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5912                                    std::string ex(str, iter.base());
5913                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
5914                                    assert(ios.width() == 0);
5915                                }
5916                                ios.width(25);
5917                                internal(ios);
5918                                {
5919                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5920                                    std::string ex(str, iter.base());
5921                                    assert(ex == "+1234567890.12500000000000000000000000000000000000000000000000");
5922                                    assert(ios.width() == 0);
5923                                }
5924                            }
5925                            ios.imbue(lg);
5926                            {
5927                                ios.width(0);
5928                                {
5929                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5930                                    std::string ex(str, iter.base());
5931                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
5932                                    assert(ios.width() == 0);
5933                                }
5934                                ios.width(25);
5935                                left(ios);
5936                                {
5937                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5938                                    std::string ex(str, iter.base());
5939                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
5940                                    assert(ios.width() == 0);
5941                                }
5942                                ios.width(25);
5943                                right(ios);
5944                                {
5945                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5946                                    std::string ex(str, iter.base());
5947                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
5948                                    assert(ios.width() == 0);
5949                                }
5950                                ios.width(25);
5951                                internal(ios);
5952                                {
5953                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5954                                    std::string ex(str, iter.base());
5955                                    assert(ex == "+1_234_567_89_0;12500000000000000000000000000000000000000000000000");
5956                                    assert(ios.width() == 0);
5957                                }
5958                            }
5959                        }
5960                    }
5961                }
5962            }
5963        }
5964    }
5965}
5966
5967void test3()
5968{
5969    char str[200];
5970    output_iterator<char*> iter;
5971    std::locale lc = std::locale::classic();
5972    std::locale lg(lc, new my_numpunct);
5973    const my_facet f(1);
5974    {
5975        double v = +0.;
5976        std::ios ios(0);
5977        fixed(ios);
5978        // %f
5979        {
5980            ios.precision(0);
5981            {
5982                nouppercase(ios);
5983                {
5984                    noshowpos(ios);
5985                    {
5986                        noshowpoint(ios);
5987                        {
5988                            ios.imbue(lc);
5989                            {
5990                                ios.width(0);
5991                                {
5992                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
5993                                    std::string ex(str, iter.base());
5994                                    assert(ex == "0");
5995                                    assert(ios.width() == 0);
5996                                }
5997                                ios.width(25);
5998                                left(ios);
5999                                {
6000                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6001                                    std::string ex(str, iter.base());
6002                                    assert(ex == "0************************");
6003                                    assert(ios.width() == 0);
6004                                }
6005                                ios.width(25);
6006                                right(ios);
6007                                {
6008                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6009                                    std::string ex(str, iter.base());
6010                                    assert(ex == "************************0");
6011                                    assert(ios.width() == 0);
6012                                }
6013                                ios.width(25);
6014                                internal(ios);
6015                                {
6016                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6017                                    std::string ex(str, iter.base());
6018                                    assert(ex == "************************0");
6019                                    assert(ios.width() == 0);
6020                                }
6021                            }
6022                            ios.imbue(lg);
6023                            {
6024                                ios.width(0);
6025                                {
6026                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6027                                    std::string ex(str, iter.base());
6028                                    assert(ex == "0");
6029                                    assert(ios.width() == 0);
6030                                }
6031                                ios.width(25);
6032                                left(ios);
6033                                {
6034                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6035                                    std::string ex(str, iter.base());
6036                                    assert(ex == "0************************");
6037                                    assert(ios.width() == 0);
6038                                }
6039                                ios.width(25);
6040                                right(ios);
6041                                {
6042                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6043                                    std::string ex(str, iter.base());
6044                                    assert(ex == "************************0");
6045                                    assert(ios.width() == 0);
6046                                }
6047                                ios.width(25);
6048                                internal(ios);
6049                                {
6050                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6051                                    std::string ex(str, iter.base());
6052                                    assert(ex == "************************0");
6053                                    assert(ios.width() == 0);
6054                                }
6055                            }
6056                        }
6057                        showpoint(ios);
6058                        {
6059                            ios.imbue(lc);
6060                            {
6061                                ios.width(0);
6062                                {
6063                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6064                                    std::string ex(str, iter.base());
6065                                    assert(ex == "0.");
6066                                    assert(ios.width() == 0);
6067                                }
6068                                ios.width(25);
6069                                left(ios);
6070                                {
6071                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6072                                    std::string ex(str, iter.base());
6073                                    assert(ex == "0.***********************");
6074                                    assert(ios.width() == 0);
6075                                }
6076                                ios.width(25);
6077                                right(ios);
6078                                {
6079                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6080                                    std::string ex(str, iter.base());
6081                                    assert(ex == "***********************0.");
6082                                    assert(ios.width() == 0);
6083                                }
6084                                ios.width(25);
6085                                internal(ios);
6086                                {
6087                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6088                                    std::string ex(str, iter.base());
6089                                    assert(ex == "***********************0.");
6090                                    assert(ios.width() == 0);
6091                                }
6092                            }
6093                            ios.imbue(lg);
6094                            {
6095                                ios.width(0);
6096                                {
6097                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6098                                    std::string ex(str, iter.base());
6099                                    assert(ex == "0;");
6100                                    assert(ios.width() == 0);
6101                                }
6102                                ios.width(25);
6103                                left(ios);
6104                                {
6105                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6106                                    std::string ex(str, iter.base());
6107                                    assert(ex == "0;***********************");
6108                                    assert(ios.width() == 0);
6109                                }
6110                                ios.width(25);
6111                                right(ios);
6112                                {
6113                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6114                                    std::string ex(str, iter.base());
6115                                    assert(ex == "***********************0;");
6116                                    assert(ios.width() == 0);
6117                                }
6118                                ios.width(25);
6119                                internal(ios);
6120                                {
6121                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6122                                    std::string ex(str, iter.base());
6123                                    assert(ex == "***********************0;");
6124                                    assert(ios.width() == 0);
6125                                }
6126                            }
6127                        }
6128                    }
6129                    showpos(ios);
6130                    {
6131                        noshowpoint(ios);
6132                        {
6133                            ios.imbue(lc);
6134                            {
6135                                ios.width(0);
6136                                {
6137                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6138                                    std::string ex(str, iter.base());
6139                                    assert(ex == "+0");
6140                                    assert(ios.width() == 0);
6141                                }
6142                                ios.width(25);
6143                                left(ios);
6144                                {
6145                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6146                                    std::string ex(str, iter.base());
6147                                    assert(ex == "+0***********************");
6148                                    assert(ios.width() == 0);
6149                                }
6150                                ios.width(25);
6151                                right(ios);
6152                                {
6153                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6154                                    std::string ex(str, iter.base());
6155                                    assert(ex == "***********************+0");
6156                                    assert(ios.width() == 0);
6157                                }
6158                                ios.width(25);
6159                                internal(ios);
6160                                {
6161                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6162                                    std::string ex(str, iter.base());
6163                                    assert(ex == "+***********************0");
6164                                    assert(ios.width() == 0);
6165                                }
6166                            }
6167                            ios.imbue(lg);
6168                            {
6169                                ios.width(0);
6170                                {
6171                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6172                                    std::string ex(str, iter.base());
6173                                    assert(ex == "+0");
6174                                    assert(ios.width() == 0);
6175                                }
6176                                ios.width(25);
6177                                left(ios);
6178                                {
6179                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6180                                    std::string ex(str, iter.base());
6181                                    assert(ex == "+0***********************");
6182                                    assert(ios.width() == 0);
6183                                }
6184                                ios.width(25);
6185                                right(ios);
6186                                {
6187                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6188                                    std::string ex(str, iter.base());
6189                                    assert(ex == "***********************+0");
6190                                    assert(ios.width() == 0);
6191                                }
6192                                ios.width(25);
6193                                internal(ios);
6194                                {
6195                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6196                                    std::string ex(str, iter.base());
6197                                    assert(ex == "+***********************0");
6198                                    assert(ios.width() == 0);
6199                                }
6200                            }
6201                        }
6202                        showpoint(ios);
6203                        {
6204                            ios.imbue(lc);
6205                            {
6206                                ios.width(0);
6207                                {
6208                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6209                                    std::string ex(str, iter.base());
6210                                    assert(ex == "+0.");
6211                                    assert(ios.width() == 0);
6212                                }
6213                                ios.width(25);
6214                                left(ios);
6215                                {
6216                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6217                                    std::string ex(str, iter.base());
6218                                    assert(ex == "+0.**********************");
6219                                    assert(ios.width() == 0);
6220                                }
6221                                ios.width(25);
6222                                right(ios);
6223                                {
6224                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6225                                    std::string ex(str, iter.base());
6226                                    assert(ex == "**********************+0.");
6227                                    assert(ios.width() == 0);
6228                                }
6229                                ios.width(25);
6230                                internal(ios);
6231                                {
6232                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6233                                    std::string ex(str, iter.base());
6234                                    assert(ex == "+**********************0.");
6235                                    assert(ios.width() == 0);
6236                                }
6237                            }
6238                            ios.imbue(lg);
6239                            {
6240                                ios.width(0);
6241                                {
6242                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6243                                    std::string ex(str, iter.base());
6244                                    assert(ex == "+0;");
6245                                    assert(ios.width() == 0);
6246                                }
6247                                ios.width(25);
6248                                left(ios);
6249                                {
6250                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6251                                    std::string ex(str, iter.base());
6252                                    assert(ex == "+0;**********************");
6253                                    assert(ios.width() == 0);
6254                                }
6255                                ios.width(25);
6256                                right(ios);
6257                                {
6258                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6259                                    std::string ex(str, iter.base());
6260                                    assert(ex == "**********************+0;");
6261                                    assert(ios.width() == 0);
6262                                }
6263                                ios.width(25);
6264                                internal(ios);
6265                                {
6266                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6267                                    std::string ex(str, iter.base());
6268                                    assert(ex == "+**********************0;");
6269                                    assert(ios.width() == 0);
6270                                }
6271                            }
6272                        }
6273                    }
6274                }
6275                uppercase(ios);
6276                {
6277                    noshowpos(ios);
6278                    {
6279                        noshowpoint(ios);
6280                        {
6281                            ios.imbue(lc);
6282                            {
6283                                ios.width(0);
6284                                {
6285                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6286                                    std::string ex(str, iter.base());
6287                                    assert(ex == "0");
6288                                    assert(ios.width() == 0);
6289                                }
6290                                ios.width(25);
6291                                left(ios);
6292                                {
6293                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6294                                    std::string ex(str, iter.base());
6295                                    assert(ex == "0************************");
6296                                    assert(ios.width() == 0);
6297                                }
6298                                ios.width(25);
6299                                right(ios);
6300                                {
6301                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6302                                    std::string ex(str, iter.base());
6303                                    assert(ex == "************************0");
6304                                    assert(ios.width() == 0);
6305                                }
6306                                ios.width(25);
6307                                internal(ios);
6308                                {
6309                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6310                                    std::string ex(str, iter.base());
6311                                    assert(ex == "************************0");
6312                                    assert(ios.width() == 0);
6313                                }
6314                            }
6315                            ios.imbue(lg);
6316                            {
6317                                ios.width(0);
6318                                {
6319                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6320                                    std::string ex(str, iter.base());
6321                                    assert(ex == "0");
6322                                    assert(ios.width() == 0);
6323                                }
6324                                ios.width(25);
6325                                left(ios);
6326                                {
6327                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6328                                    std::string ex(str, iter.base());
6329                                    assert(ex == "0************************");
6330                                    assert(ios.width() == 0);
6331                                }
6332                                ios.width(25);
6333                                right(ios);
6334                                {
6335                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6336                                    std::string ex(str, iter.base());
6337                                    assert(ex == "************************0");
6338                                    assert(ios.width() == 0);
6339                                }
6340                                ios.width(25);
6341                                internal(ios);
6342                                {
6343                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6344                                    std::string ex(str, iter.base());
6345                                    assert(ex == "************************0");
6346                                    assert(ios.width() == 0);
6347                                }
6348                            }
6349                        }
6350                        showpoint(ios);
6351                        {
6352                            ios.imbue(lc);
6353                            {
6354                                ios.width(0);
6355                                {
6356                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6357                                    std::string ex(str, iter.base());
6358                                    assert(ex == "0.");
6359                                    assert(ios.width() == 0);
6360                                }
6361                                ios.width(25);
6362                                left(ios);
6363                                {
6364                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6365                                    std::string ex(str, iter.base());
6366                                    assert(ex == "0.***********************");
6367                                    assert(ios.width() == 0);
6368                                }
6369                                ios.width(25);
6370                                right(ios);
6371                                {
6372                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6373                                    std::string ex(str, iter.base());
6374                                    assert(ex == "***********************0.");
6375                                    assert(ios.width() == 0);
6376                                }
6377                                ios.width(25);
6378                                internal(ios);
6379                                {
6380                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6381                                    std::string ex(str, iter.base());
6382                                    assert(ex == "***********************0.");
6383                                    assert(ios.width() == 0);
6384                                }
6385                            }
6386                            ios.imbue(lg);
6387                            {
6388                                ios.width(0);
6389                                {
6390                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6391                                    std::string ex(str, iter.base());
6392                                    assert(ex == "0;");
6393                                    assert(ios.width() == 0);
6394                                }
6395                                ios.width(25);
6396                                left(ios);
6397                                {
6398                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6399                                    std::string ex(str, iter.base());
6400                                    assert(ex == "0;***********************");
6401                                    assert(ios.width() == 0);
6402                                }
6403                                ios.width(25);
6404                                right(ios);
6405                                {
6406                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6407                                    std::string ex(str, iter.base());
6408                                    assert(ex == "***********************0;");
6409                                    assert(ios.width() == 0);
6410                                }
6411                                ios.width(25);
6412                                internal(ios);
6413                                {
6414                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6415                                    std::string ex(str, iter.base());
6416                                    assert(ex == "***********************0;");
6417                                    assert(ios.width() == 0);
6418                                }
6419                            }
6420                        }
6421                    }
6422                    showpos(ios);
6423                    {
6424                        noshowpoint(ios);
6425                        {
6426                            ios.imbue(lc);
6427                            {
6428                                ios.width(0);
6429                                {
6430                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6431                                    std::string ex(str, iter.base());
6432                                    assert(ex == "+0");
6433                                    assert(ios.width() == 0);
6434                                }
6435                                ios.width(25);
6436                                left(ios);
6437                                {
6438                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6439                                    std::string ex(str, iter.base());
6440                                    assert(ex == "+0***********************");
6441                                    assert(ios.width() == 0);
6442                                }
6443                                ios.width(25);
6444                                right(ios);
6445                                {
6446                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6447                                    std::string ex(str, iter.base());
6448                                    assert(ex == "***********************+0");
6449                                    assert(ios.width() == 0);
6450                                }
6451                                ios.width(25);
6452                                internal(ios);
6453                                {
6454                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6455                                    std::string ex(str, iter.base());
6456                                    assert(ex == "+***********************0");
6457                                    assert(ios.width() == 0);
6458                                }
6459                            }
6460                            ios.imbue(lg);
6461                            {
6462                                ios.width(0);
6463                                {
6464                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6465                                    std::string ex(str, iter.base());
6466                                    assert(ex == "+0");
6467                                    assert(ios.width() == 0);
6468                                }
6469                                ios.width(25);
6470                                left(ios);
6471                                {
6472                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6473                                    std::string ex(str, iter.base());
6474                                    assert(ex == "+0***********************");
6475                                    assert(ios.width() == 0);
6476                                }
6477                                ios.width(25);
6478                                right(ios);
6479                                {
6480                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6481                                    std::string ex(str, iter.base());
6482                                    assert(ex == "***********************+0");
6483                                    assert(ios.width() == 0);
6484                                }
6485                                ios.width(25);
6486                                internal(ios);
6487                                {
6488                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6489                                    std::string ex(str, iter.base());
6490                                    assert(ex == "+***********************0");
6491                                    assert(ios.width() == 0);
6492                                }
6493                            }
6494                        }
6495                        showpoint(ios);
6496                        {
6497                            ios.imbue(lc);
6498                            {
6499                                ios.width(0);
6500                                {
6501                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6502                                    std::string ex(str, iter.base());
6503                                    assert(ex == "+0.");
6504                                    assert(ios.width() == 0);
6505                                }
6506                                ios.width(25);
6507                                left(ios);
6508                                {
6509                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6510                                    std::string ex(str, iter.base());
6511                                    assert(ex == "+0.**********************");
6512                                    assert(ios.width() == 0);
6513                                }
6514                                ios.width(25);
6515                                right(ios);
6516                                {
6517                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6518                                    std::string ex(str, iter.base());
6519                                    assert(ex == "**********************+0.");
6520                                    assert(ios.width() == 0);
6521                                }
6522                                ios.width(25);
6523                                internal(ios);
6524                                {
6525                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6526                                    std::string ex(str, iter.base());
6527                                    assert(ex == "+**********************0.");
6528                                    assert(ios.width() == 0);
6529                                }
6530                            }
6531                            ios.imbue(lg);
6532                            {
6533                                ios.width(0);
6534                                {
6535                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6536                                    std::string ex(str, iter.base());
6537                                    assert(ex == "+0;");
6538                                    assert(ios.width() == 0);
6539                                }
6540                                ios.width(25);
6541                                left(ios);
6542                                {
6543                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6544                                    std::string ex(str, iter.base());
6545                                    assert(ex == "+0;**********************");
6546                                    assert(ios.width() == 0);
6547                                }
6548                                ios.width(25);
6549                                right(ios);
6550                                {
6551                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6552                                    std::string ex(str, iter.base());
6553                                    assert(ex == "**********************+0;");
6554                                    assert(ios.width() == 0);
6555                                }
6556                                ios.width(25);
6557                                internal(ios);
6558                                {
6559                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6560                                    std::string ex(str, iter.base());
6561                                    assert(ex == "+**********************0;");
6562                                    assert(ios.width() == 0);
6563                                }
6564                            }
6565                        }
6566                    }
6567                }
6568            }
6569            ios.precision(1);
6570            {
6571                nouppercase(ios);
6572                {
6573                    noshowpos(ios);
6574                    {
6575                        noshowpoint(ios);
6576                        {
6577                            ios.imbue(lc);
6578                            {
6579                                ios.width(0);
6580                                {
6581                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6582                                    std::string ex(str, iter.base());
6583                                    assert(ex == "0.0");
6584                                    assert(ios.width() == 0);
6585                                }
6586                                ios.width(25);
6587                                left(ios);
6588                                {
6589                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6590                                    std::string ex(str, iter.base());
6591                                    assert(ex == "0.0**********************");
6592                                    assert(ios.width() == 0);
6593                                }
6594                                ios.width(25);
6595                                right(ios);
6596                                {
6597                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6598                                    std::string ex(str, iter.base());
6599                                    assert(ex == "**********************0.0");
6600                                    assert(ios.width() == 0);
6601                                }
6602                                ios.width(25);
6603                                internal(ios);
6604                                {
6605                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6606                                    std::string ex(str, iter.base());
6607                                    assert(ex == "**********************0.0");
6608                                    assert(ios.width() == 0);
6609                                }
6610                            }
6611                            ios.imbue(lg);
6612                            {
6613                                ios.width(0);
6614                                {
6615                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6616                                    std::string ex(str, iter.base());
6617                                    assert(ex == "0;0");
6618                                    assert(ios.width() == 0);
6619                                }
6620                                ios.width(25);
6621                                left(ios);
6622                                {
6623                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6624                                    std::string ex(str, iter.base());
6625                                    assert(ex == "0;0**********************");
6626                                    assert(ios.width() == 0);
6627                                }
6628                                ios.width(25);
6629                                right(ios);
6630                                {
6631                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6632                                    std::string ex(str, iter.base());
6633                                    assert(ex == "**********************0;0");
6634                                    assert(ios.width() == 0);
6635                                }
6636                                ios.width(25);
6637                                internal(ios);
6638                                {
6639                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6640                                    std::string ex(str, iter.base());
6641                                    assert(ex == "**********************0;0");
6642                                    assert(ios.width() == 0);
6643                                }
6644                            }
6645                        }
6646                        showpoint(ios);
6647                        {
6648                            ios.imbue(lc);
6649                            {
6650                                ios.width(0);
6651                                {
6652                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6653                                    std::string ex(str, iter.base());
6654                                    assert(ex == "0.0");
6655                                    assert(ios.width() == 0);
6656                                }
6657                                ios.width(25);
6658                                left(ios);
6659                                {
6660                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6661                                    std::string ex(str, iter.base());
6662                                    assert(ex == "0.0**********************");
6663                                    assert(ios.width() == 0);
6664                                }
6665                                ios.width(25);
6666                                right(ios);
6667                                {
6668                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6669                                    std::string ex(str, iter.base());
6670                                    assert(ex == "**********************0.0");
6671                                    assert(ios.width() == 0);
6672                                }
6673                                ios.width(25);
6674                                internal(ios);
6675                                {
6676                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6677                                    std::string ex(str, iter.base());
6678                                    assert(ex == "**********************0.0");
6679                                    assert(ios.width() == 0);
6680                                }
6681                            }
6682                            ios.imbue(lg);
6683                            {
6684                                ios.width(0);
6685                                {
6686                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6687                                    std::string ex(str, iter.base());
6688                                    assert(ex == "0;0");
6689                                    assert(ios.width() == 0);
6690                                }
6691                                ios.width(25);
6692                                left(ios);
6693                                {
6694                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6695                                    std::string ex(str, iter.base());
6696                                    assert(ex == "0;0**********************");
6697                                    assert(ios.width() == 0);
6698                                }
6699                                ios.width(25);
6700                                right(ios);
6701                                {
6702                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6703                                    std::string ex(str, iter.base());
6704                                    assert(ex == "**********************0;0");
6705                                    assert(ios.width() == 0);
6706                                }
6707                                ios.width(25);
6708                                internal(ios);
6709                                {
6710                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6711                                    std::string ex(str, iter.base());
6712                                    assert(ex == "**********************0;0");
6713                                    assert(ios.width() == 0);
6714                                }
6715                            }
6716                        }
6717                    }
6718                    showpos(ios);
6719                    {
6720                        noshowpoint(ios);
6721                        {
6722                            ios.imbue(lc);
6723                            {
6724                                ios.width(0);
6725                                {
6726                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6727                                    std::string ex(str, iter.base());
6728                                    assert(ex == "+0.0");
6729                                    assert(ios.width() == 0);
6730                                }
6731                                ios.width(25);
6732                                left(ios);
6733                                {
6734                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6735                                    std::string ex(str, iter.base());
6736                                    assert(ex == "+0.0*********************");
6737                                    assert(ios.width() == 0);
6738                                }
6739                                ios.width(25);
6740                                right(ios);
6741                                {
6742                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6743                                    std::string ex(str, iter.base());
6744                                    assert(ex == "*********************+0.0");
6745                                    assert(ios.width() == 0);
6746                                }
6747                                ios.width(25);
6748                                internal(ios);
6749                                {
6750                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6751                                    std::string ex(str, iter.base());
6752                                    assert(ex == "+*********************0.0");
6753                                    assert(ios.width() == 0);
6754                                }
6755                            }
6756                            ios.imbue(lg);
6757                            {
6758                                ios.width(0);
6759                                {
6760                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6761                                    std::string ex(str, iter.base());
6762                                    assert(ex == "+0;0");
6763                                    assert(ios.width() == 0);
6764                                }
6765                                ios.width(25);
6766                                left(ios);
6767                                {
6768                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6769                                    std::string ex(str, iter.base());
6770                                    assert(ex == "+0;0*********************");
6771                                    assert(ios.width() == 0);
6772                                }
6773                                ios.width(25);
6774                                right(ios);
6775                                {
6776                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6777                                    std::string ex(str, iter.base());
6778                                    assert(ex == "*********************+0;0");
6779                                    assert(ios.width() == 0);
6780                                }
6781                                ios.width(25);
6782                                internal(ios);
6783                                {
6784                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6785                                    std::string ex(str, iter.base());
6786                                    assert(ex == "+*********************0;0");
6787                                    assert(ios.width() == 0);
6788                                }
6789                            }
6790                        }
6791                        showpoint(ios);
6792                        {
6793                            ios.imbue(lc);
6794                            {
6795                                ios.width(0);
6796                                {
6797                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6798                                    std::string ex(str, iter.base());
6799                                    assert(ex == "+0.0");
6800                                    assert(ios.width() == 0);
6801                                }
6802                                ios.width(25);
6803                                left(ios);
6804                                {
6805                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6806                                    std::string ex(str, iter.base());
6807                                    assert(ex == "+0.0*********************");
6808                                    assert(ios.width() == 0);
6809                                }
6810                                ios.width(25);
6811                                right(ios);
6812                                {
6813                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6814                                    std::string ex(str, iter.base());
6815                                    assert(ex == "*********************+0.0");
6816                                    assert(ios.width() == 0);
6817                                }
6818                                ios.width(25);
6819                                internal(ios);
6820                                {
6821                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6822                                    std::string ex(str, iter.base());
6823                                    assert(ex == "+*********************0.0");
6824                                    assert(ios.width() == 0);
6825                                }
6826                            }
6827                            ios.imbue(lg);
6828                            {
6829                                ios.width(0);
6830                                {
6831                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6832                                    std::string ex(str, iter.base());
6833                                    assert(ex == "+0;0");
6834                                    assert(ios.width() == 0);
6835                                }
6836                                ios.width(25);
6837                                left(ios);
6838                                {
6839                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6840                                    std::string ex(str, iter.base());
6841                                    assert(ex == "+0;0*********************");
6842                                    assert(ios.width() == 0);
6843                                }
6844                                ios.width(25);
6845                                right(ios);
6846                                {
6847                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6848                                    std::string ex(str, iter.base());
6849                                    assert(ex == "*********************+0;0");
6850                                    assert(ios.width() == 0);
6851                                }
6852                                ios.width(25);
6853                                internal(ios);
6854                                {
6855                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6856                                    std::string ex(str, iter.base());
6857                                    assert(ex == "+*********************0;0");
6858                                    assert(ios.width() == 0);
6859                                }
6860                            }
6861                        }
6862                    }
6863                }
6864                uppercase(ios);
6865                {
6866                    noshowpos(ios);
6867                    {
6868                        noshowpoint(ios);
6869                        {
6870                            ios.imbue(lc);
6871                            {
6872                                ios.width(0);
6873                                {
6874                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6875                                    std::string ex(str, iter.base());
6876                                    assert(ex == "0.0");
6877                                    assert(ios.width() == 0);
6878                                }
6879                                ios.width(25);
6880                                left(ios);
6881                                {
6882                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6883                                    std::string ex(str, iter.base());
6884                                    assert(ex == "0.0**********************");
6885                                    assert(ios.width() == 0);
6886                                }
6887                                ios.width(25);
6888                                right(ios);
6889                                {
6890                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6891                                    std::string ex(str, iter.base());
6892                                    assert(ex == "**********************0.0");
6893                                    assert(ios.width() == 0);
6894                                }
6895                                ios.width(25);
6896                                internal(ios);
6897                                {
6898                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6899                                    std::string ex(str, iter.base());
6900                                    assert(ex == "**********************0.0");
6901                                    assert(ios.width() == 0);
6902                                }
6903                            }
6904                            ios.imbue(lg);
6905                            {
6906                                ios.width(0);
6907                                {
6908                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6909                                    std::string ex(str, iter.base());
6910                                    assert(ex == "0;0");
6911                                    assert(ios.width() == 0);
6912                                }
6913                                ios.width(25);
6914                                left(ios);
6915                                {
6916                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6917                                    std::string ex(str, iter.base());
6918                                    assert(ex == "0;0**********************");
6919                                    assert(ios.width() == 0);
6920                                }
6921                                ios.width(25);
6922                                right(ios);
6923                                {
6924                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6925                                    std::string ex(str, iter.base());
6926                                    assert(ex == "**********************0;0");
6927                                    assert(ios.width() == 0);
6928                                }
6929                                ios.width(25);
6930                                internal(ios);
6931                                {
6932                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6933                                    std::string ex(str, iter.base());
6934                                    assert(ex == "**********************0;0");
6935                                    assert(ios.width() == 0);
6936                                }
6937                            }
6938                        }
6939                        showpoint(ios);
6940                        {
6941                            ios.imbue(lc);
6942                            {
6943                                ios.width(0);
6944                                {
6945                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6946                                    std::string ex(str, iter.base());
6947                                    assert(ex == "0.0");
6948                                    assert(ios.width() == 0);
6949                                }
6950                                ios.width(25);
6951                                left(ios);
6952                                {
6953                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6954                                    std::string ex(str, iter.base());
6955                                    assert(ex == "0.0**********************");
6956                                    assert(ios.width() == 0);
6957                                }
6958                                ios.width(25);
6959                                right(ios);
6960                                {
6961                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6962                                    std::string ex(str, iter.base());
6963                                    assert(ex == "**********************0.0");
6964                                    assert(ios.width() == 0);
6965                                }
6966                                ios.width(25);
6967                                internal(ios);
6968                                {
6969                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6970                                    std::string ex(str, iter.base());
6971                                    assert(ex == "**********************0.0");
6972                                    assert(ios.width() == 0);
6973                                }
6974                            }
6975                            ios.imbue(lg);
6976                            {
6977                                ios.width(0);
6978                                {
6979                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6980                                    std::string ex(str, iter.base());
6981                                    assert(ex == "0;0");
6982                                    assert(ios.width() == 0);
6983                                }
6984                                ios.width(25);
6985                                left(ios);
6986                                {
6987                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6988                                    std::string ex(str, iter.base());
6989                                    assert(ex == "0;0**********************");
6990                                    assert(ios.width() == 0);
6991                                }
6992                                ios.width(25);
6993                                right(ios);
6994                                {
6995                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
6996                                    std::string ex(str, iter.base());
6997                                    assert(ex == "**********************0;0");
6998                                    assert(ios.width() == 0);
6999                                }
7000                                ios.width(25);
7001                                internal(ios);
7002                                {
7003                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7004                                    std::string ex(str, iter.base());
7005                                    assert(ex == "**********************0;0");
7006                                    assert(ios.width() == 0);
7007                                }
7008                            }
7009                        }
7010                    }
7011                    showpos(ios);
7012                    {
7013                        noshowpoint(ios);
7014                        {
7015                            ios.imbue(lc);
7016                            {
7017                                ios.width(0);
7018                                {
7019                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7020                                    std::string ex(str, iter.base());
7021                                    assert(ex == "+0.0");
7022                                    assert(ios.width() == 0);
7023                                }
7024                                ios.width(25);
7025                                left(ios);
7026                                {
7027                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7028                                    std::string ex(str, iter.base());
7029                                    assert(ex == "+0.0*********************");
7030                                    assert(ios.width() == 0);
7031                                }
7032                                ios.width(25);
7033                                right(ios);
7034                                {
7035                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7036                                    std::string ex(str, iter.base());
7037                                    assert(ex == "*********************+0.0");
7038                                    assert(ios.width() == 0);
7039                                }
7040                                ios.width(25);
7041                                internal(ios);
7042                                {
7043                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7044                                    std::string ex(str, iter.base());
7045                                    assert(ex == "+*********************0.0");
7046                                    assert(ios.width() == 0);
7047                                }
7048                            }
7049                            ios.imbue(lg);
7050                            {
7051                                ios.width(0);
7052                                {
7053                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7054                                    std::string ex(str, iter.base());
7055                                    assert(ex == "+0;0");
7056                                    assert(ios.width() == 0);
7057                                }
7058                                ios.width(25);
7059                                left(ios);
7060                                {
7061                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7062                                    std::string ex(str, iter.base());
7063                                    assert(ex == "+0;0*********************");
7064                                    assert(ios.width() == 0);
7065                                }
7066                                ios.width(25);
7067                                right(ios);
7068                                {
7069                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7070                                    std::string ex(str, iter.base());
7071                                    assert(ex == "*********************+0;0");
7072                                    assert(ios.width() == 0);
7073                                }
7074                                ios.width(25);
7075                                internal(ios);
7076                                {
7077                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7078                                    std::string ex(str, iter.base());
7079                                    assert(ex == "+*********************0;0");
7080                                    assert(ios.width() == 0);
7081                                }
7082                            }
7083                        }
7084                        showpoint(ios);
7085                        {
7086                            ios.imbue(lc);
7087                            {
7088                                ios.width(0);
7089                                {
7090                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7091                                    std::string ex(str, iter.base());
7092                                    assert(ex == "+0.0");
7093                                    assert(ios.width() == 0);
7094                                }
7095                                ios.width(25);
7096                                left(ios);
7097                                {
7098                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7099                                    std::string ex(str, iter.base());
7100                                    assert(ex == "+0.0*********************");
7101                                    assert(ios.width() == 0);
7102                                }
7103                                ios.width(25);
7104                                right(ios);
7105                                {
7106                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7107                                    std::string ex(str, iter.base());
7108                                    assert(ex == "*********************+0.0");
7109                                    assert(ios.width() == 0);
7110                                }
7111                                ios.width(25);
7112                                internal(ios);
7113                                {
7114                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7115                                    std::string ex(str, iter.base());
7116                                    assert(ex == "+*********************0.0");
7117                                    assert(ios.width() == 0);
7118                                }
7119                            }
7120                            ios.imbue(lg);
7121                            {
7122                                ios.width(0);
7123                                {
7124                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7125                                    std::string ex(str, iter.base());
7126                                    assert(ex == "+0;0");
7127                                    assert(ios.width() == 0);
7128                                }
7129                                ios.width(25);
7130                                left(ios);
7131                                {
7132                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7133                                    std::string ex(str, iter.base());
7134                                    assert(ex == "+0;0*********************");
7135                                    assert(ios.width() == 0);
7136                                }
7137                                ios.width(25);
7138                                right(ios);
7139                                {
7140                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7141                                    std::string ex(str, iter.base());
7142                                    assert(ex == "*********************+0;0");
7143                                    assert(ios.width() == 0);
7144                                }
7145                                ios.width(25);
7146                                internal(ios);
7147                                {
7148                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7149                                    std::string ex(str, iter.base());
7150                                    assert(ex == "+*********************0;0");
7151                                    assert(ios.width() == 0);
7152                                }
7153                            }
7154                        }
7155                    }
7156                }
7157            }
7158            ios.precision(6);
7159            {
7160                nouppercase(ios);
7161                {
7162                    noshowpos(ios);
7163                    {
7164                        noshowpoint(ios);
7165                        {
7166                            ios.imbue(lc);
7167                            {
7168                                ios.width(0);
7169                                {
7170                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7171                                    std::string ex(str, iter.base());
7172                                    assert(ex == "0.000000");
7173                                    assert(ios.width() == 0);
7174                                }
7175                                ios.width(25);
7176                                left(ios);
7177                                {
7178                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7179                                    std::string ex(str, iter.base());
7180                                    assert(ex == "0.000000*****************");
7181                                    assert(ios.width() == 0);
7182                                }
7183                                ios.width(25);
7184                                right(ios);
7185                                {
7186                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7187                                    std::string ex(str, iter.base());
7188                                    assert(ex == "*****************0.000000");
7189                                    assert(ios.width() == 0);
7190                                }
7191                                ios.width(25);
7192                                internal(ios);
7193                                {
7194                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7195                                    std::string ex(str, iter.base());
7196                                    assert(ex == "*****************0.000000");
7197                                    assert(ios.width() == 0);
7198                                }
7199                            }
7200                            ios.imbue(lg);
7201                            {
7202                                ios.width(0);
7203                                {
7204                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7205                                    std::string ex(str, iter.base());
7206                                    assert(ex == "0;000000");
7207                                    assert(ios.width() == 0);
7208                                }
7209                                ios.width(25);
7210                                left(ios);
7211                                {
7212                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7213                                    std::string ex(str, iter.base());
7214                                    assert(ex == "0;000000*****************");
7215                                    assert(ios.width() == 0);
7216                                }
7217                                ios.width(25);
7218                                right(ios);
7219                                {
7220                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7221                                    std::string ex(str, iter.base());
7222                                    assert(ex == "*****************0;000000");
7223                                    assert(ios.width() == 0);
7224                                }
7225                                ios.width(25);
7226                                internal(ios);
7227                                {
7228                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7229                                    std::string ex(str, iter.base());
7230                                    assert(ex == "*****************0;000000");
7231                                    assert(ios.width() == 0);
7232                                }
7233                            }
7234                        }
7235                        showpoint(ios);
7236                        {
7237                            ios.imbue(lc);
7238                            {
7239                                ios.width(0);
7240                                {
7241                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7242                                    std::string ex(str, iter.base());
7243                                    assert(ex == "0.000000");
7244                                    assert(ios.width() == 0);
7245                                }
7246                                ios.width(25);
7247                                left(ios);
7248                                {
7249                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7250                                    std::string ex(str, iter.base());
7251                                    assert(ex == "0.000000*****************");
7252                                    assert(ios.width() == 0);
7253                                }
7254                                ios.width(25);
7255                                right(ios);
7256                                {
7257                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7258                                    std::string ex(str, iter.base());
7259                                    assert(ex == "*****************0.000000");
7260                                    assert(ios.width() == 0);
7261                                }
7262                                ios.width(25);
7263                                internal(ios);
7264                                {
7265                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7266                                    std::string ex(str, iter.base());
7267                                    assert(ex == "*****************0.000000");
7268                                    assert(ios.width() == 0);
7269                                }
7270                            }
7271                            ios.imbue(lg);
7272                            {
7273                                ios.width(0);
7274                                {
7275                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7276                                    std::string ex(str, iter.base());
7277                                    assert(ex == "0;000000");
7278                                    assert(ios.width() == 0);
7279                                }
7280                                ios.width(25);
7281                                left(ios);
7282                                {
7283                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7284                                    std::string ex(str, iter.base());
7285                                    assert(ex == "0;000000*****************");
7286                                    assert(ios.width() == 0);
7287                                }
7288                                ios.width(25);
7289                                right(ios);
7290                                {
7291                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7292                                    std::string ex(str, iter.base());
7293                                    assert(ex == "*****************0;000000");
7294                                    assert(ios.width() == 0);
7295                                }
7296                                ios.width(25);
7297                                internal(ios);
7298                                {
7299                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7300                                    std::string ex(str, iter.base());
7301                                    assert(ex == "*****************0;000000");
7302                                    assert(ios.width() == 0);
7303                                }
7304                            }
7305                        }
7306                    }
7307                    showpos(ios);
7308                    {
7309                        noshowpoint(ios);
7310                        {
7311                            ios.imbue(lc);
7312                            {
7313                                ios.width(0);
7314                                {
7315                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7316                                    std::string ex(str, iter.base());
7317                                    assert(ex == "+0.000000");
7318                                    assert(ios.width() == 0);
7319                                }
7320                                ios.width(25);
7321                                left(ios);
7322                                {
7323                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7324                                    std::string ex(str, iter.base());
7325                                    assert(ex == "+0.000000****************");
7326                                    assert(ios.width() == 0);
7327                                }
7328                                ios.width(25);
7329                                right(ios);
7330                                {
7331                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7332                                    std::string ex(str, iter.base());
7333                                    assert(ex == "****************+0.000000");
7334                                    assert(ios.width() == 0);
7335                                }
7336                                ios.width(25);
7337                                internal(ios);
7338                                {
7339                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7340                                    std::string ex(str, iter.base());
7341                                    assert(ex == "+****************0.000000");
7342                                    assert(ios.width() == 0);
7343                                }
7344                            }
7345                            ios.imbue(lg);
7346                            {
7347                                ios.width(0);
7348                                {
7349                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7350                                    std::string ex(str, iter.base());
7351                                    assert(ex == "+0;000000");
7352                                    assert(ios.width() == 0);
7353                                }
7354                                ios.width(25);
7355                                left(ios);
7356                                {
7357                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7358                                    std::string ex(str, iter.base());
7359                                    assert(ex == "+0;000000****************");
7360                                    assert(ios.width() == 0);
7361                                }
7362                                ios.width(25);
7363                                right(ios);
7364                                {
7365                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7366                                    std::string ex(str, iter.base());
7367                                    assert(ex == "****************+0;000000");
7368                                    assert(ios.width() == 0);
7369                                }
7370                                ios.width(25);
7371                                internal(ios);
7372                                {
7373                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7374                                    std::string ex(str, iter.base());
7375                                    assert(ex == "+****************0;000000");
7376                                    assert(ios.width() == 0);
7377                                }
7378                            }
7379                        }
7380                        showpoint(ios);
7381                        {
7382                            ios.imbue(lc);
7383                            {
7384                                ios.width(0);
7385                                {
7386                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7387                                    std::string ex(str, iter.base());
7388                                    assert(ex == "+0.000000");
7389                                    assert(ios.width() == 0);
7390                                }
7391                                ios.width(25);
7392                                left(ios);
7393                                {
7394                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7395                                    std::string ex(str, iter.base());
7396                                    assert(ex == "+0.000000****************");
7397                                    assert(ios.width() == 0);
7398                                }
7399                                ios.width(25);
7400                                right(ios);
7401                                {
7402                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7403                                    std::string ex(str, iter.base());
7404                                    assert(ex == "****************+0.000000");
7405                                    assert(ios.width() == 0);
7406                                }
7407                                ios.width(25);
7408                                internal(ios);
7409                                {
7410                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7411                                    std::string ex(str, iter.base());
7412                                    assert(ex == "+****************0.000000");
7413                                    assert(ios.width() == 0);
7414                                }
7415                            }
7416                            ios.imbue(lg);
7417                            {
7418                                ios.width(0);
7419                                {
7420                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7421                                    std::string ex(str, iter.base());
7422                                    assert(ex == "+0;000000");
7423                                    assert(ios.width() == 0);
7424                                }
7425                                ios.width(25);
7426                                left(ios);
7427                                {
7428                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7429                                    std::string ex(str, iter.base());
7430                                    assert(ex == "+0;000000****************");
7431                                    assert(ios.width() == 0);
7432                                }
7433                                ios.width(25);
7434                                right(ios);
7435                                {
7436                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7437                                    std::string ex(str, iter.base());
7438                                    assert(ex == "****************+0;000000");
7439                                    assert(ios.width() == 0);
7440                                }
7441                                ios.width(25);
7442                                internal(ios);
7443                                {
7444                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7445                                    std::string ex(str, iter.base());
7446                                    assert(ex == "+****************0;000000");
7447                                    assert(ios.width() == 0);
7448                                }
7449                            }
7450                        }
7451                    }
7452                }
7453                uppercase(ios);
7454                {
7455                    noshowpos(ios);
7456                    {
7457                        noshowpoint(ios);
7458                        {
7459                            ios.imbue(lc);
7460                            {
7461                                ios.width(0);
7462                                {
7463                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7464                                    std::string ex(str, iter.base());
7465                                    assert(ex == "0.000000");
7466                                    assert(ios.width() == 0);
7467                                }
7468                                ios.width(25);
7469                                left(ios);
7470                                {
7471                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7472                                    std::string ex(str, iter.base());
7473                                    assert(ex == "0.000000*****************");
7474                                    assert(ios.width() == 0);
7475                                }
7476                                ios.width(25);
7477                                right(ios);
7478                                {
7479                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7480                                    std::string ex(str, iter.base());
7481                                    assert(ex == "*****************0.000000");
7482                                    assert(ios.width() == 0);
7483                                }
7484                                ios.width(25);
7485                                internal(ios);
7486                                {
7487                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7488                                    std::string ex(str, iter.base());
7489                                    assert(ex == "*****************0.000000");
7490                                    assert(ios.width() == 0);
7491                                }
7492                            }
7493                            ios.imbue(lg);
7494                            {
7495                                ios.width(0);
7496                                {
7497                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7498                                    std::string ex(str, iter.base());
7499                                    assert(ex == "0;000000");
7500                                    assert(ios.width() == 0);
7501                                }
7502                                ios.width(25);
7503                                left(ios);
7504                                {
7505                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7506                                    std::string ex(str, iter.base());
7507                                    assert(ex == "0;000000*****************");
7508                                    assert(ios.width() == 0);
7509                                }
7510                                ios.width(25);
7511                                right(ios);
7512                                {
7513                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7514                                    std::string ex(str, iter.base());
7515                                    assert(ex == "*****************0;000000");
7516                                    assert(ios.width() == 0);
7517                                }
7518                                ios.width(25);
7519                                internal(ios);
7520                                {
7521                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7522                                    std::string ex(str, iter.base());
7523                                    assert(ex == "*****************0;000000");
7524                                    assert(ios.width() == 0);
7525                                }
7526                            }
7527                        }
7528                        showpoint(ios);
7529                        {
7530                            ios.imbue(lc);
7531                            {
7532                                ios.width(0);
7533                                {
7534                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7535                                    std::string ex(str, iter.base());
7536                                    assert(ex == "0.000000");
7537                                    assert(ios.width() == 0);
7538                                }
7539                                ios.width(25);
7540                                left(ios);
7541                                {
7542                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7543                                    std::string ex(str, iter.base());
7544                                    assert(ex == "0.000000*****************");
7545                                    assert(ios.width() == 0);
7546                                }
7547                                ios.width(25);
7548                                right(ios);
7549                                {
7550                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7551                                    std::string ex(str, iter.base());
7552                                    assert(ex == "*****************0.000000");
7553                                    assert(ios.width() == 0);
7554                                }
7555                                ios.width(25);
7556                                internal(ios);
7557                                {
7558                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7559                                    std::string ex(str, iter.base());
7560                                    assert(ex == "*****************0.000000");
7561                                    assert(ios.width() == 0);
7562                                }
7563                            }
7564                            ios.imbue(lg);
7565                            {
7566                                ios.width(0);
7567                                {
7568                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7569                                    std::string ex(str, iter.base());
7570                                    assert(ex == "0;000000");
7571                                    assert(ios.width() == 0);
7572                                }
7573                                ios.width(25);
7574                                left(ios);
7575                                {
7576                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7577                                    std::string ex(str, iter.base());
7578                                    assert(ex == "0;000000*****************");
7579                                    assert(ios.width() == 0);
7580                                }
7581                                ios.width(25);
7582                                right(ios);
7583                                {
7584                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7585                                    std::string ex(str, iter.base());
7586                                    assert(ex == "*****************0;000000");
7587                                    assert(ios.width() == 0);
7588                                }
7589                                ios.width(25);
7590                                internal(ios);
7591                                {
7592                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7593                                    std::string ex(str, iter.base());
7594                                    assert(ex == "*****************0;000000");
7595                                    assert(ios.width() == 0);
7596                                }
7597                            }
7598                        }
7599                    }
7600                    showpos(ios);
7601                    {
7602                        noshowpoint(ios);
7603                        {
7604                            ios.imbue(lc);
7605                            {
7606                                ios.width(0);
7607                                {
7608                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7609                                    std::string ex(str, iter.base());
7610                                    assert(ex == "+0.000000");
7611                                    assert(ios.width() == 0);
7612                                }
7613                                ios.width(25);
7614                                left(ios);
7615                                {
7616                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7617                                    std::string ex(str, iter.base());
7618                                    assert(ex == "+0.000000****************");
7619                                    assert(ios.width() == 0);
7620                                }
7621                                ios.width(25);
7622                                right(ios);
7623                                {
7624                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7625                                    std::string ex(str, iter.base());
7626                                    assert(ex == "****************+0.000000");
7627                                    assert(ios.width() == 0);
7628                                }
7629                                ios.width(25);
7630                                internal(ios);
7631                                {
7632                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7633                                    std::string ex(str, iter.base());
7634                                    assert(ex == "+****************0.000000");
7635                                    assert(ios.width() == 0);
7636                                }
7637                            }
7638                            ios.imbue(lg);
7639                            {
7640                                ios.width(0);
7641                                {
7642                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7643                                    std::string ex(str, iter.base());
7644                                    assert(ex == "+0;000000");
7645                                    assert(ios.width() == 0);
7646                                }
7647                                ios.width(25);
7648                                left(ios);
7649                                {
7650                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7651                                    std::string ex(str, iter.base());
7652                                    assert(ex == "+0;000000****************");
7653                                    assert(ios.width() == 0);
7654                                }
7655                                ios.width(25);
7656                                right(ios);
7657                                {
7658                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7659                                    std::string ex(str, iter.base());
7660                                    assert(ex == "****************+0;000000");
7661                                    assert(ios.width() == 0);
7662                                }
7663                                ios.width(25);
7664                                internal(ios);
7665                                {
7666                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7667                                    std::string ex(str, iter.base());
7668                                    assert(ex == "+****************0;000000");
7669                                    assert(ios.width() == 0);
7670                                }
7671                            }
7672                        }
7673                        showpoint(ios);
7674                        {
7675                            ios.imbue(lc);
7676                            {
7677                                ios.width(0);
7678                                {
7679                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7680                                    std::string ex(str, iter.base());
7681                                    assert(ex == "+0.000000");
7682                                    assert(ios.width() == 0);
7683                                }
7684                                ios.width(25);
7685                                left(ios);
7686                                {
7687                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7688                                    std::string ex(str, iter.base());
7689                                    assert(ex == "+0.000000****************");
7690                                    assert(ios.width() == 0);
7691                                }
7692                                ios.width(25);
7693                                right(ios);
7694                                {
7695                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7696                                    std::string ex(str, iter.base());
7697                                    assert(ex == "****************+0.000000");
7698                                    assert(ios.width() == 0);
7699                                }
7700                                ios.width(25);
7701                                internal(ios);
7702                                {
7703                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7704                                    std::string ex(str, iter.base());
7705                                    assert(ex == "+****************0.000000");
7706                                    assert(ios.width() == 0);
7707                                }
7708                            }
7709                            ios.imbue(lg);
7710                            {
7711                                ios.width(0);
7712                                {
7713                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7714                                    std::string ex(str, iter.base());
7715                                    assert(ex == "+0;000000");
7716                                    assert(ios.width() == 0);
7717                                }
7718                                ios.width(25);
7719                                left(ios);
7720                                {
7721                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7722                                    std::string ex(str, iter.base());
7723                                    assert(ex == "+0;000000****************");
7724                                    assert(ios.width() == 0);
7725                                }
7726                                ios.width(25);
7727                                right(ios);
7728                                {
7729                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7730                                    std::string ex(str, iter.base());
7731                                    assert(ex == "****************+0;000000");
7732                                    assert(ios.width() == 0);
7733                                }
7734                                ios.width(25);
7735                                internal(ios);
7736                                {
7737                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7738                                    std::string ex(str, iter.base());
7739                                    assert(ex == "+****************0;000000");
7740                                    assert(ios.width() == 0);
7741                                }
7742                            }
7743                        }
7744                    }
7745                }
7746            }
7747            ios.precision(16);
7748            {
7749                nouppercase(ios);
7750                {
7751                    noshowpos(ios);
7752                    {
7753                        noshowpoint(ios);
7754                        {
7755                            ios.imbue(lc);
7756                            {
7757                                ios.width(0);
7758                                {
7759                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7760                                    std::string ex(str, iter.base());
7761                                    assert(ex == "0.0000000000000000");
7762                                    assert(ios.width() == 0);
7763                                }
7764                                ios.width(25);
7765                                left(ios);
7766                                {
7767                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7768                                    std::string ex(str, iter.base());
7769                                    assert(ex == "0.0000000000000000*******");
7770                                    assert(ios.width() == 0);
7771                                }
7772                                ios.width(25);
7773                                right(ios);
7774                                {
7775                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7776                                    std::string ex(str, iter.base());
7777                                    assert(ex == "*******0.0000000000000000");
7778                                    assert(ios.width() == 0);
7779                                }
7780                                ios.width(25);
7781                                internal(ios);
7782                                {
7783                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7784                                    std::string ex(str, iter.base());
7785                                    assert(ex == "*******0.0000000000000000");
7786                                    assert(ios.width() == 0);
7787                                }
7788                            }
7789                            ios.imbue(lg);
7790                            {
7791                                ios.width(0);
7792                                {
7793                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7794                                    std::string ex(str, iter.base());
7795                                    assert(ex == "0;0000000000000000");
7796                                    assert(ios.width() == 0);
7797                                }
7798                                ios.width(25);
7799                                left(ios);
7800                                {
7801                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7802                                    std::string ex(str, iter.base());
7803                                    assert(ex == "0;0000000000000000*******");
7804                                    assert(ios.width() == 0);
7805                                }
7806                                ios.width(25);
7807                                right(ios);
7808                                {
7809                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7810                                    std::string ex(str, iter.base());
7811                                    assert(ex == "*******0;0000000000000000");
7812                                    assert(ios.width() == 0);
7813                                }
7814                                ios.width(25);
7815                                internal(ios);
7816                                {
7817                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7818                                    std::string ex(str, iter.base());
7819                                    assert(ex == "*******0;0000000000000000");
7820                                    assert(ios.width() == 0);
7821                                }
7822                            }
7823                        }
7824                        showpoint(ios);
7825                        {
7826                            ios.imbue(lc);
7827                            {
7828                                ios.width(0);
7829                                {
7830                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7831                                    std::string ex(str, iter.base());
7832                                    assert(ex == "0.0000000000000000");
7833                                    assert(ios.width() == 0);
7834                                }
7835                                ios.width(25);
7836                                left(ios);
7837                                {
7838                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7839                                    std::string ex(str, iter.base());
7840                                    assert(ex == "0.0000000000000000*******");
7841                                    assert(ios.width() == 0);
7842                                }
7843                                ios.width(25);
7844                                right(ios);
7845                                {
7846                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7847                                    std::string ex(str, iter.base());
7848                                    assert(ex == "*******0.0000000000000000");
7849                                    assert(ios.width() == 0);
7850                                }
7851                                ios.width(25);
7852                                internal(ios);
7853                                {
7854                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7855                                    std::string ex(str, iter.base());
7856                                    assert(ex == "*******0.0000000000000000");
7857                                    assert(ios.width() == 0);
7858                                }
7859                            }
7860                            ios.imbue(lg);
7861                            {
7862                                ios.width(0);
7863                                {
7864                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7865                                    std::string ex(str, iter.base());
7866                                    assert(ex == "0;0000000000000000");
7867                                    assert(ios.width() == 0);
7868                                }
7869                                ios.width(25);
7870                                left(ios);
7871                                {
7872                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7873                                    std::string ex(str, iter.base());
7874                                    assert(ex == "0;0000000000000000*******");
7875                                    assert(ios.width() == 0);
7876                                }
7877                                ios.width(25);
7878                                right(ios);
7879                                {
7880                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7881                                    std::string ex(str, iter.base());
7882                                    assert(ex == "*******0;0000000000000000");
7883                                    assert(ios.width() == 0);
7884                                }
7885                                ios.width(25);
7886                                internal(ios);
7887                                {
7888                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7889                                    std::string ex(str, iter.base());
7890                                    assert(ex == "*******0;0000000000000000");
7891                                    assert(ios.width() == 0);
7892                                }
7893                            }
7894                        }
7895                    }
7896                    showpos(ios);
7897                    {
7898                        noshowpoint(ios);
7899                        {
7900                            ios.imbue(lc);
7901                            {
7902                                ios.width(0);
7903                                {
7904                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7905                                    std::string ex(str, iter.base());
7906                                    assert(ex == "+0.0000000000000000");
7907                                    assert(ios.width() == 0);
7908                                }
7909                                ios.width(25);
7910                                left(ios);
7911                                {
7912                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7913                                    std::string ex(str, iter.base());
7914                                    assert(ex == "+0.0000000000000000******");
7915                                    assert(ios.width() == 0);
7916                                }
7917                                ios.width(25);
7918                                right(ios);
7919                                {
7920                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7921                                    std::string ex(str, iter.base());
7922                                    assert(ex == "******+0.0000000000000000");
7923                                    assert(ios.width() == 0);
7924                                }
7925                                ios.width(25);
7926                                internal(ios);
7927                                {
7928                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7929                                    std::string ex(str, iter.base());
7930                                    assert(ex == "+******0.0000000000000000");
7931                                    assert(ios.width() == 0);
7932                                }
7933                            }
7934                            ios.imbue(lg);
7935                            {
7936                                ios.width(0);
7937                                {
7938                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7939                                    std::string ex(str, iter.base());
7940                                    assert(ex == "+0;0000000000000000");
7941                                    assert(ios.width() == 0);
7942                                }
7943                                ios.width(25);
7944                                left(ios);
7945                                {
7946                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7947                                    std::string ex(str, iter.base());
7948                                    assert(ex == "+0;0000000000000000******");
7949                                    assert(ios.width() == 0);
7950                                }
7951                                ios.width(25);
7952                                right(ios);
7953                                {
7954                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7955                                    std::string ex(str, iter.base());
7956                                    assert(ex == "******+0;0000000000000000");
7957                                    assert(ios.width() == 0);
7958                                }
7959                                ios.width(25);
7960                                internal(ios);
7961                                {
7962                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7963                                    std::string ex(str, iter.base());
7964                                    assert(ex == "+******0;0000000000000000");
7965                                    assert(ios.width() == 0);
7966                                }
7967                            }
7968                        }
7969                        showpoint(ios);
7970                        {
7971                            ios.imbue(lc);
7972                            {
7973                                ios.width(0);
7974                                {
7975                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7976                                    std::string ex(str, iter.base());
7977                                    assert(ex == "+0.0000000000000000");
7978                                    assert(ios.width() == 0);
7979                                }
7980                                ios.width(25);
7981                                left(ios);
7982                                {
7983                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7984                                    std::string ex(str, iter.base());
7985                                    assert(ex == "+0.0000000000000000******");
7986                                    assert(ios.width() == 0);
7987                                }
7988                                ios.width(25);
7989                                right(ios);
7990                                {
7991                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
7992                                    std::string ex(str, iter.base());
7993                                    assert(ex == "******+0.0000000000000000");
7994                                    assert(ios.width() == 0);
7995                                }
7996                                ios.width(25);
7997                                internal(ios);
7998                                {
7999                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8000                                    std::string ex(str, iter.base());
8001                                    assert(ex == "+******0.0000000000000000");
8002                                    assert(ios.width() == 0);
8003                                }
8004                            }
8005                            ios.imbue(lg);
8006                            {
8007                                ios.width(0);
8008                                {
8009                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8010                                    std::string ex(str, iter.base());
8011                                    assert(ex == "+0;0000000000000000");
8012                                    assert(ios.width() == 0);
8013                                }
8014                                ios.width(25);
8015                                left(ios);
8016                                {
8017                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8018                                    std::string ex(str, iter.base());
8019                                    assert(ex == "+0;0000000000000000******");
8020                                    assert(ios.width() == 0);
8021                                }
8022                                ios.width(25);
8023                                right(ios);
8024                                {
8025                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8026                                    std::string ex(str, iter.base());
8027                                    assert(ex == "******+0;0000000000000000");
8028                                    assert(ios.width() == 0);
8029                                }
8030                                ios.width(25);
8031                                internal(ios);
8032                                {
8033                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8034                                    std::string ex(str, iter.base());
8035                                    assert(ex == "+******0;0000000000000000");
8036                                    assert(ios.width() == 0);
8037                                }
8038                            }
8039                        }
8040                    }
8041                }
8042                uppercase(ios);
8043                {
8044                    noshowpos(ios);
8045                    {
8046                        noshowpoint(ios);
8047                        {
8048                            ios.imbue(lc);
8049                            {
8050                                ios.width(0);
8051                                {
8052                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8053                                    std::string ex(str, iter.base());
8054                                    assert(ex == "0.0000000000000000");
8055                                    assert(ios.width() == 0);
8056                                }
8057                                ios.width(25);
8058                                left(ios);
8059                                {
8060                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8061                                    std::string ex(str, iter.base());
8062                                    assert(ex == "0.0000000000000000*******");
8063                                    assert(ios.width() == 0);
8064                                }
8065                                ios.width(25);
8066                                right(ios);
8067                                {
8068                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8069                                    std::string ex(str, iter.base());
8070                                    assert(ex == "*******0.0000000000000000");
8071                                    assert(ios.width() == 0);
8072                                }
8073                                ios.width(25);
8074                                internal(ios);
8075                                {
8076                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8077                                    std::string ex(str, iter.base());
8078                                    assert(ex == "*******0.0000000000000000");
8079                                    assert(ios.width() == 0);
8080                                }
8081                            }
8082                            ios.imbue(lg);
8083                            {
8084                                ios.width(0);
8085                                {
8086                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8087                                    std::string ex(str, iter.base());
8088                                    assert(ex == "0;0000000000000000");
8089                                    assert(ios.width() == 0);
8090                                }
8091                                ios.width(25);
8092                                left(ios);
8093                                {
8094                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8095                                    std::string ex(str, iter.base());
8096                                    assert(ex == "0;0000000000000000*******");
8097                                    assert(ios.width() == 0);
8098                                }
8099                                ios.width(25);
8100                                right(ios);
8101                                {
8102                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8103                                    std::string ex(str, iter.base());
8104                                    assert(ex == "*******0;0000000000000000");
8105                                    assert(ios.width() == 0);
8106                                }
8107                                ios.width(25);
8108                                internal(ios);
8109                                {
8110                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8111                                    std::string ex(str, iter.base());
8112                                    assert(ex == "*******0;0000000000000000");
8113                                    assert(ios.width() == 0);
8114                                }
8115                            }
8116                        }
8117                        showpoint(ios);
8118                        {
8119                            ios.imbue(lc);
8120                            {
8121                                ios.width(0);
8122                                {
8123                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8124                                    std::string ex(str, iter.base());
8125                                    assert(ex == "0.0000000000000000");
8126                                    assert(ios.width() == 0);
8127                                }
8128                                ios.width(25);
8129                                left(ios);
8130                                {
8131                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8132                                    std::string ex(str, iter.base());
8133                                    assert(ex == "0.0000000000000000*******");
8134                                    assert(ios.width() == 0);
8135                                }
8136                                ios.width(25);
8137                                right(ios);
8138                                {
8139                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8140                                    std::string ex(str, iter.base());
8141                                    assert(ex == "*******0.0000000000000000");
8142                                    assert(ios.width() == 0);
8143                                }
8144                                ios.width(25);
8145                                internal(ios);
8146                                {
8147                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8148                                    std::string ex(str, iter.base());
8149                                    assert(ex == "*******0.0000000000000000");
8150                                    assert(ios.width() == 0);
8151                                }
8152                            }
8153                            ios.imbue(lg);
8154                            {
8155                                ios.width(0);
8156                                {
8157                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8158                                    std::string ex(str, iter.base());
8159                                    assert(ex == "0;0000000000000000");
8160                                    assert(ios.width() == 0);
8161                                }
8162                                ios.width(25);
8163                                left(ios);
8164                                {
8165                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8166                                    std::string ex(str, iter.base());
8167                                    assert(ex == "0;0000000000000000*******");
8168                                    assert(ios.width() == 0);
8169                                }
8170                                ios.width(25);
8171                                right(ios);
8172                                {
8173                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8174                                    std::string ex(str, iter.base());
8175                                    assert(ex == "*******0;0000000000000000");
8176                                    assert(ios.width() == 0);
8177                                }
8178                                ios.width(25);
8179                                internal(ios);
8180                                {
8181                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8182                                    std::string ex(str, iter.base());
8183                                    assert(ex == "*******0;0000000000000000");
8184                                    assert(ios.width() == 0);
8185                                }
8186                            }
8187                        }
8188                    }
8189                    showpos(ios);
8190                    {
8191                        noshowpoint(ios);
8192                        {
8193                            ios.imbue(lc);
8194                            {
8195                                ios.width(0);
8196                                {
8197                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8198                                    std::string ex(str, iter.base());
8199                                    assert(ex == "+0.0000000000000000");
8200                                    assert(ios.width() == 0);
8201                                }
8202                                ios.width(25);
8203                                left(ios);
8204                                {
8205                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8206                                    std::string ex(str, iter.base());
8207                                    assert(ex == "+0.0000000000000000******");
8208                                    assert(ios.width() == 0);
8209                                }
8210                                ios.width(25);
8211                                right(ios);
8212                                {
8213                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8214                                    std::string ex(str, iter.base());
8215                                    assert(ex == "******+0.0000000000000000");
8216                                    assert(ios.width() == 0);
8217                                }
8218                                ios.width(25);
8219                                internal(ios);
8220                                {
8221                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8222                                    std::string ex(str, iter.base());
8223                                    assert(ex == "+******0.0000000000000000");
8224                                    assert(ios.width() == 0);
8225                                }
8226                            }
8227                            ios.imbue(lg);
8228                            {
8229                                ios.width(0);
8230                                {
8231                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8232                                    std::string ex(str, iter.base());
8233                                    assert(ex == "+0;0000000000000000");
8234                                    assert(ios.width() == 0);
8235                                }
8236                                ios.width(25);
8237                                left(ios);
8238                                {
8239                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8240                                    std::string ex(str, iter.base());
8241                                    assert(ex == "+0;0000000000000000******");
8242                                    assert(ios.width() == 0);
8243                                }
8244                                ios.width(25);
8245                                right(ios);
8246                                {
8247                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8248                                    std::string ex(str, iter.base());
8249                                    assert(ex == "******+0;0000000000000000");
8250                                    assert(ios.width() == 0);
8251                                }
8252                                ios.width(25);
8253                                internal(ios);
8254                                {
8255                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8256                                    std::string ex(str, iter.base());
8257                                    assert(ex == "+******0;0000000000000000");
8258                                    assert(ios.width() == 0);
8259                                }
8260                            }
8261                        }
8262                        showpoint(ios);
8263                        {
8264                            ios.imbue(lc);
8265                            {
8266                                ios.width(0);
8267                                {
8268                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8269                                    std::string ex(str, iter.base());
8270                                    assert(ex == "+0.0000000000000000");
8271                                    assert(ios.width() == 0);
8272                                }
8273                                ios.width(25);
8274                                left(ios);
8275                                {
8276                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8277                                    std::string ex(str, iter.base());
8278                                    assert(ex == "+0.0000000000000000******");
8279                                    assert(ios.width() == 0);
8280                                }
8281                                ios.width(25);
8282                                right(ios);
8283                                {
8284                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8285                                    std::string ex(str, iter.base());
8286                                    assert(ex == "******+0.0000000000000000");
8287                                    assert(ios.width() == 0);
8288                                }
8289                                ios.width(25);
8290                                internal(ios);
8291                                {
8292                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8293                                    std::string ex(str, iter.base());
8294                                    assert(ex == "+******0.0000000000000000");
8295                                    assert(ios.width() == 0);
8296                                }
8297                            }
8298                            ios.imbue(lg);
8299                            {
8300                                ios.width(0);
8301                                {
8302                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8303                                    std::string ex(str, iter.base());
8304                                    assert(ex == "+0;0000000000000000");
8305                                    assert(ios.width() == 0);
8306                                }
8307                                ios.width(25);
8308                                left(ios);
8309                                {
8310                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8311                                    std::string ex(str, iter.base());
8312                                    assert(ex == "+0;0000000000000000******");
8313                                    assert(ios.width() == 0);
8314                                }
8315                                ios.width(25);
8316                                right(ios);
8317                                {
8318                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8319                                    std::string ex(str, iter.base());
8320                                    assert(ex == "******+0;0000000000000000");
8321                                    assert(ios.width() == 0);
8322                                }
8323                                ios.width(25);
8324                                internal(ios);
8325                                {
8326                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8327                                    std::string ex(str, iter.base());
8328                                    assert(ex == "+******0;0000000000000000");
8329                                    assert(ios.width() == 0);
8330                                }
8331                            }
8332                        }
8333                    }
8334                }
8335            }
8336            ios.precision(60);
8337            {
8338                nouppercase(ios);
8339                {
8340                    noshowpos(ios);
8341                    {
8342                        noshowpoint(ios);
8343                        {
8344                            ios.imbue(lc);
8345                            {
8346                                ios.width(0);
8347                                {
8348                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8349                                    std::string ex(str, iter.base());
8350                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
8351                                    assert(ios.width() == 0);
8352                                }
8353                                ios.width(25);
8354                                left(ios);
8355                                {
8356                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8357                                    std::string ex(str, iter.base());
8358                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
8359                                    assert(ios.width() == 0);
8360                                }
8361                                ios.width(25);
8362                                right(ios);
8363                                {
8364                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8365                                    std::string ex(str, iter.base());
8366                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
8367                                    assert(ios.width() == 0);
8368                                }
8369                                ios.width(25);
8370                                internal(ios);
8371                                {
8372                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8373                                    std::string ex(str, iter.base());
8374                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
8375                                    assert(ios.width() == 0);
8376                                }
8377                            }
8378                            ios.imbue(lg);
8379                            {
8380                                ios.width(0);
8381                                {
8382                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8383                                    std::string ex(str, iter.base());
8384                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
8385                                    assert(ios.width() == 0);
8386                                }
8387                                ios.width(25);
8388                                left(ios);
8389                                {
8390                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8391                                    std::string ex(str, iter.base());
8392                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
8393                                    assert(ios.width() == 0);
8394                                }
8395                                ios.width(25);
8396                                right(ios);
8397                                {
8398                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8399                                    std::string ex(str, iter.base());
8400                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
8401                                    assert(ios.width() == 0);
8402                                }
8403                                ios.width(25);
8404                                internal(ios);
8405                                {
8406                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8407                                    std::string ex(str, iter.base());
8408                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
8409                                    assert(ios.width() == 0);
8410                                }
8411                            }
8412                        }
8413                        showpoint(ios);
8414                        {
8415                            ios.imbue(lc);
8416                            {
8417                                ios.width(0);
8418                                {
8419                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8420                                    std::string ex(str, iter.base());
8421                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
8422                                    assert(ios.width() == 0);
8423                                }
8424                                ios.width(25);
8425                                left(ios);
8426                                {
8427                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8428                                    std::string ex(str, iter.base());
8429                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
8430                                    assert(ios.width() == 0);
8431                                }
8432                                ios.width(25);
8433                                right(ios);
8434                                {
8435                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8436                                    std::string ex(str, iter.base());
8437                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
8438                                    assert(ios.width() == 0);
8439                                }
8440                                ios.width(25);
8441                                internal(ios);
8442                                {
8443                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8444                                    std::string ex(str, iter.base());
8445                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
8446                                    assert(ios.width() == 0);
8447                                }
8448                            }
8449                            ios.imbue(lg);
8450                            {
8451                                ios.width(0);
8452                                {
8453                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8454                                    std::string ex(str, iter.base());
8455                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
8456                                    assert(ios.width() == 0);
8457                                }
8458                                ios.width(25);
8459                                left(ios);
8460                                {
8461                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8462                                    std::string ex(str, iter.base());
8463                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
8464                                    assert(ios.width() == 0);
8465                                }
8466                                ios.width(25);
8467                                right(ios);
8468                                {
8469                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8470                                    std::string ex(str, iter.base());
8471                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
8472                                    assert(ios.width() == 0);
8473                                }
8474                                ios.width(25);
8475                                internal(ios);
8476                                {
8477                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8478                                    std::string ex(str, iter.base());
8479                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
8480                                    assert(ios.width() == 0);
8481                                }
8482                            }
8483                        }
8484                    }
8485                    showpos(ios);
8486                    {
8487                        noshowpoint(ios);
8488                        {
8489                            ios.imbue(lc);
8490                            {
8491                                ios.width(0);
8492                                {
8493                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8494                                    std::string ex(str, iter.base());
8495                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
8496                                    assert(ios.width() == 0);
8497                                }
8498                                ios.width(25);
8499                                left(ios);
8500                                {
8501                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8502                                    std::string ex(str, iter.base());
8503                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
8504                                    assert(ios.width() == 0);
8505                                }
8506                                ios.width(25);
8507                                right(ios);
8508                                {
8509                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8510                                    std::string ex(str, iter.base());
8511                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
8512                                    assert(ios.width() == 0);
8513                                }
8514                                ios.width(25);
8515                                internal(ios);
8516                                {
8517                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8518                                    std::string ex(str, iter.base());
8519                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
8520                                    assert(ios.width() == 0);
8521                                }
8522                            }
8523                            ios.imbue(lg);
8524                            {
8525                                ios.width(0);
8526                                {
8527                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8528                                    std::string ex(str, iter.base());
8529                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
8530                                    assert(ios.width() == 0);
8531                                }
8532                                ios.width(25);
8533                                left(ios);
8534                                {
8535                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8536                                    std::string ex(str, iter.base());
8537                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
8538                                    assert(ios.width() == 0);
8539                                }
8540                                ios.width(25);
8541                                right(ios);
8542                                {
8543                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8544                                    std::string ex(str, iter.base());
8545                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
8546                                    assert(ios.width() == 0);
8547                                }
8548                                ios.width(25);
8549                                internal(ios);
8550                                {
8551                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8552                                    std::string ex(str, iter.base());
8553                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
8554                                    assert(ios.width() == 0);
8555                                }
8556                            }
8557                        }
8558                        showpoint(ios);
8559                        {
8560                            ios.imbue(lc);
8561                            {
8562                                ios.width(0);
8563                                {
8564                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8565                                    std::string ex(str, iter.base());
8566                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
8567                                    assert(ios.width() == 0);
8568                                }
8569                                ios.width(25);
8570                                left(ios);
8571                                {
8572                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8573                                    std::string ex(str, iter.base());
8574                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
8575                                    assert(ios.width() == 0);
8576                                }
8577                                ios.width(25);
8578                                right(ios);
8579                                {
8580                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8581                                    std::string ex(str, iter.base());
8582                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
8583                                    assert(ios.width() == 0);
8584                                }
8585                                ios.width(25);
8586                                internal(ios);
8587                                {
8588                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8589                                    std::string ex(str, iter.base());
8590                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
8591                                    assert(ios.width() == 0);
8592                                }
8593                            }
8594                            ios.imbue(lg);
8595                            {
8596                                ios.width(0);
8597                                {
8598                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8599                                    std::string ex(str, iter.base());
8600                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
8601                                    assert(ios.width() == 0);
8602                                }
8603                                ios.width(25);
8604                                left(ios);
8605                                {
8606                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8607                                    std::string ex(str, iter.base());
8608                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
8609                                    assert(ios.width() == 0);
8610                                }
8611                                ios.width(25);
8612                                right(ios);
8613                                {
8614                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8615                                    std::string ex(str, iter.base());
8616                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
8617                                    assert(ios.width() == 0);
8618                                }
8619                                ios.width(25);
8620                                internal(ios);
8621                                {
8622                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8623                                    std::string ex(str, iter.base());
8624                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
8625                                    assert(ios.width() == 0);
8626                                }
8627                            }
8628                        }
8629                    }
8630                }
8631                uppercase(ios);
8632                {
8633                    noshowpos(ios);
8634                    {
8635                        noshowpoint(ios);
8636                        {
8637                            ios.imbue(lc);
8638                            {
8639                                ios.width(0);
8640                                {
8641                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8642                                    std::string ex(str, iter.base());
8643                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
8644                                    assert(ios.width() == 0);
8645                                }
8646                                ios.width(25);
8647                                left(ios);
8648                                {
8649                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8650                                    std::string ex(str, iter.base());
8651                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
8652                                    assert(ios.width() == 0);
8653                                }
8654                                ios.width(25);
8655                                right(ios);
8656                                {
8657                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8658                                    std::string ex(str, iter.base());
8659                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
8660                                    assert(ios.width() == 0);
8661                                }
8662                                ios.width(25);
8663                                internal(ios);
8664                                {
8665                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8666                                    std::string ex(str, iter.base());
8667                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
8668                                    assert(ios.width() == 0);
8669                                }
8670                            }
8671                            ios.imbue(lg);
8672                            {
8673                                ios.width(0);
8674                                {
8675                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8676                                    std::string ex(str, iter.base());
8677                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
8678                                    assert(ios.width() == 0);
8679                                }
8680                                ios.width(25);
8681                                left(ios);
8682                                {
8683                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8684                                    std::string ex(str, iter.base());
8685                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
8686                                    assert(ios.width() == 0);
8687                                }
8688                                ios.width(25);
8689                                right(ios);
8690                                {
8691                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8692                                    std::string ex(str, iter.base());
8693                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
8694                                    assert(ios.width() == 0);
8695                                }
8696                                ios.width(25);
8697                                internal(ios);
8698                                {
8699                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8700                                    std::string ex(str, iter.base());
8701                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
8702                                    assert(ios.width() == 0);
8703                                }
8704                            }
8705                        }
8706                        showpoint(ios);
8707                        {
8708                            ios.imbue(lc);
8709                            {
8710                                ios.width(0);
8711                                {
8712                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8713                                    std::string ex(str, iter.base());
8714                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
8715                                    assert(ios.width() == 0);
8716                                }
8717                                ios.width(25);
8718                                left(ios);
8719                                {
8720                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8721                                    std::string ex(str, iter.base());
8722                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
8723                                    assert(ios.width() == 0);
8724                                }
8725                                ios.width(25);
8726                                right(ios);
8727                                {
8728                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8729                                    std::string ex(str, iter.base());
8730                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
8731                                    assert(ios.width() == 0);
8732                                }
8733                                ios.width(25);
8734                                internal(ios);
8735                                {
8736                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8737                                    std::string ex(str, iter.base());
8738                                    assert(ex == "0.000000000000000000000000000000000000000000000000000000000000");
8739                                    assert(ios.width() == 0);
8740                                }
8741                            }
8742                            ios.imbue(lg);
8743                            {
8744                                ios.width(0);
8745                                {
8746                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8747                                    std::string ex(str, iter.base());
8748                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
8749                                    assert(ios.width() == 0);
8750                                }
8751                                ios.width(25);
8752                                left(ios);
8753                                {
8754                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8755                                    std::string ex(str, iter.base());
8756                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
8757                                    assert(ios.width() == 0);
8758                                }
8759                                ios.width(25);
8760                                right(ios);
8761                                {
8762                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8763                                    std::string ex(str, iter.base());
8764                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
8765                                    assert(ios.width() == 0);
8766                                }
8767                                ios.width(25);
8768                                internal(ios);
8769                                {
8770                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8771                                    std::string ex(str, iter.base());
8772                                    assert(ex == "0;000000000000000000000000000000000000000000000000000000000000");
8773                                    assert(ios.width() == 0);
8774                                }
8775                            }
8776                        }
8777                    }
8778                    showpos(ios);
8779                    {
8780                        noshowpoint(ios);
8781                        {
8782                            ios.imbue(lc);
8783                            {
8784                                ios.width(0);
8785                                {
8786                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8787                                    std::string ex(str, iter.base());
8788                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
8789                                    assert(ios.width() == 0);
8790                                }
8791                                ios.width(25);
8792                                left(ios);
8793                                {
8794                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8795                                    std::string ex(str, iter.base());
8796                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
8797                                    assert(ios.width() == 0);
8798                                }
8799                                ios.width(25);
8800                                right(ios);
8801                                {
8802                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8803                                    std::string ex(str, iter.base());
8804                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
8805                                    assert(ios.width() == 0);
8806                                }
8807                                ios.width(25);
8808                                internal(ios);
8809                                {
8810                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8811                                    std::string ex(str, iter.base());
8812                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
8813                                    assert(ios.width() == 0);
8814                                }
8815                            }
8816                            ios.imbue(lg);
8817                            {
8818                                ios.width(0);
8819                                {
8820                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8821                                    std::string ex(str, iter.base());
8822                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
8823                                    assert(ios.width() == 0);
8824                                }
8825                                ios.width(25);
8826                                left(ios);
8827                                {
8828                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8829                                    std::string ex(str, iter.base());
8830                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
8831                                    assert(ios.width() == 0);
8832                                }
8833                                ios.width(25);
8834                                right(ios);
8835                                {
8836                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8837                                    std::string ex(str, iter.base());
8838                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
8839                                    assert(ios.width() == 0);
8840                                }
8841                                ios.width(25);
8842                                internal(ios);
8843                                {
8844                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8845                                    std::string ex(str, iter.base());
8846                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
8847                                    assert(ios.width() == 0);
8848                                }
8849                            }
8850                        }
8851                        showpoint(ios);
8852                        {
8853                            ios.imbue(lc);
8854                            {
8855                                ios.width(0);
8856                                {
8857                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8858                                    std::string ex(str, iter.base());
8859                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
8860                                    assert(ios.width() == 0);
8861                                }
8862                                ios.width(25);
8863                                left(ios);
8864                                {
8865                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8866                                    std::string ex(str, iter.base());
8867                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
8868                                    assert(ios.width() == 0);
8869                                }
8870                                ios.width(25);
8871                                right(ios);
8872                                {
8873                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8874                                    std::string ex(str, iter.base());
8875                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
8876                                    assert(ios.width() == 0);
8877                                }
8878                                ios.width(25);
8879                                internal(ios);
8880                                {
8881                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8882                                    std::string ex(str, iter.base());
8883                                    assert(ex == "+0.000000000000000000000000000000000000000000000000000000000000");
8884                                    assert(ios.width() == 0);
8885                                }
8886                            }
8887                            ios.imbue(lg);
8888                            {
8889                                ios.width(0);
8890                                {
8891                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8892                                    std::string ex(str, iter.base());
8893                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
8894                                    assert(ios.width() == 0);
8895                                }
8896                                ios.width(25);
8897                                left(ios);
8898                                {
8899                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8900                                    std::string ex(str, iter.base());
8901                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
8902                                    assert(ios.width() == 0);
8903                                }
8904                                ios.width(25);
8905                                right(ios);
8906                                {
8907                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8908                                    std::string ex(str, iter.base());
8909                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
8910                                    assert(ios.width() == 0);
8911                                }
8912                                ios.width(25);
8913                                internal(ios);
8914                                {
8915                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8916                                    std::string ex(str, iter.base());
8917                                    assert(ex == "+0;000000000000000000000000000000000000000000000000000000000000");
8918                                    assert(ios.width() == 0);
8919                                }
8920                            }
8921                        }
8922                    }
8923                }
8924            }
8925        }
8926    }
8927}
8928
8929void test4()
8930{
8931    char str[200];
8932    output_iterator<char*> iter;
8933    std::locale lc = std::locale::classic();
8934    std::locale lg(lc, new my_numpunct);
8935    const my_facet f(1);
8936    {
8937        double v = 1234567890.125;
8938        std::ios ios(0);
8939        fixed(ios);
8940        // %f
8941        {
8942            ios.precision(0);
8943            {
8944                nouppercase(ios);
8945                {
8946                    noshowpos(ios);
8947                    {
8948                        noshowpoint(ios);
8949                        {
8950                            ios.imbue(lc);
8951                            {
8952                                ios.width(0);
8953                                {
8954                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8955                                    std::string ex(str, iter.base());
8956                                    assert(ex == "1234567890");
8957                                    assert(ios.width() == 0);
8958                                }
8959                                ios.width(25);
8960                                left(ios);
8961                                {
8962                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8963                                    std::string ex(str, iter.base());
8964                                    assert(ex == "1234567890***************");
8965                                    assert(ios.width() == 0);
8966                                }
8967                                ios.width(25);
8968                                right(ios);
8969                                {
8970                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8971                                    std::string ex(str, iter.base());
8972                                    assert(ex == "***************1234567890");
8973                                    assert(ios.width() == 0);
8974                                }
8975                                ios.width(25);
8976                                internal(ios);
8977                                {
8978                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8979                                    std::string ex(str, iter.base());
8980                                    assert(ex == "***************1234567890");
8981                                    assert(ios.width() == 0);
8982                                }
8983                            }
8984                            ios.imbue(lg);
8985                            {
8986                                ios.width(0);
8987                                {
8988                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8989                                    std::string ex(str, iter.base());
8990                                    assert(ex == "1_234_567_89_0");
8991                                    assert(ios.width() == 0);
8992                                }
8993                                ios.width(25);
8994                                left(ios);
8995                                {
8996                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
8997                                    std::string ex(str, iter.base());
8998                                    assert(ex == "1_234_567_89_0***********");
8999                                    assert(ios.width() == 0);
9000                                }
9001                                ios.width(25);
9002                                right(ios);
9003                                {
9004                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9005                                    std::string ex(str, iter.base());
9006                                    assert(ex == "***********1_234_567_89_0");
9007                                    assert(ios.width() == 0);
9008                                }
9009                                ios.width(25);
9010                                internal(ios);
9011                                {
9012                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9013                                    std::string ex(str, iter.base());
9014                                    assert(ex == "***********1_234_567_89_0");
9015                                    assert(ios.width() == 0);
9016                                }
9017                            }
9018                        }
9019                        showpoint(ios);
9020                        {
9021                            ios.imbue(lc);
9022                            {
9023                                ios.width(0);
9024                                {
9025                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9026                                    std::string ex(str, iter.base());
9027                                    assert(ex == "1234567890.");
9028                                    assert(ios.width() == 0);
9029                                }
9030                                ios.width(25);
9031                                left(ios);
9032                                {
9033                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9034                                    std::string ex(str, iter.base());
9035                                    assert(ex == "1234567890.**************");
9036                                    assert(ios.width() == 0);
9037                                }
9038                                ios.width(25);
9039                                right(ios);
9040                                {
9041                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9042                                    std::string ex(str, iter.base());
9043                                    assert(ex == "**************1234567890.");
9044                                    assert(ios.width() == 0);
9045                                }
9046                                ios.width(25);
9047                                internal(ios);
9048                                {
9049                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9050                                    std::string ex(str, iter.base());
9051                                    assert(ex == "**************1234567890.");
9052                                    assert(ios.width() == 0);
9053                                }
9054                            }
9055                            ios.imbue(lg);
9056                            {
9057                                ios.width(0);
9058                                {
9059                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9060                                    std::string ex(str, iter.base());
9061                                    assert(ex == "1_234_567_89_0;");
9062                                    assert(ios.width() == 0);
9063                                }
9064                                ios.width(25);
9065                                left(ios);
9066                                {
9067                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9068                                    std::string ex(str, iter.base());
9069                                    assert(ex == "1_234_567_89_0;**********");
9070                                    assert(ios.width() == 0);
9071                                }
9072                                ios.width(25);
9073                                right(ios);
9074                                {
9075                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9076                                    std::string ex(str, iter.base());
9077                                    assert(ex == "**********1_234_567_89_0;");
9078                                    assert(ios.width() == 0);
9079                                }
9080                                ios.width(25);
9081                                internal(ios);
9082                                {
9083                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9084                                    std::string ex(str, iter.base());
9085                                    assert(ex == "**********1_234_567_89_0;");
9086                                    assert(ios.width() == 0);
9087                                }
9088                            }
9089                        }
9090                    }
9091                    showpos(ios);
9092                    {
9093                        noshowpoint(ios);
9094                        {
9095                            ios.imbue(lc);
9096                            {
9097                                ios.width(0);
9098                                {
9099                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9100                                    std::string ex(str, iter.base());
9101                                    assert(ex == "+1234567890");
9102                                    assert(ios.width() == 0);
9103                                }
9104                                ios.width(25);
9105                                left(ios);
9106                                {
9107                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9108                                    std::string ex(str, iter.base());
9109                                    assert(ex == "+1234567890**************");
9110                                    assert(ios.width() == 0);
9111                                }
9112                                ios.width(25);
9113                                right(ios);
9114                                {
9115                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9116                                    std::string ex(str, iter.base());
9117                                    assert(ex == "**************+1234567890");
9118                                    assert(ios.width() == 0);
9119                                }
9120                                ios.width(25);
9121                                internal(ios);
9122                                {
9123                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9124                                    std::string ex(str, iter.base());
9125                                    assert(ex == "+**************1234567890");
9126                                    assert(ios.width() == 0);
9127                                }
9128                            }
9129                            ios.imbue(lg);
9130                            {
9131                                ios.width(0);
9132                                {
9133                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9134                                    std::string ex(str, iter.base());
9135                                    assert(ex == "+1_234_567_89_0");
9136                                    assert(ios.width() == 0);
9137                                }
9138                                ios.width(25);
9139                                left(ios);
9140                                {
9141                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9142                                    std::string ex(str, iter.base());
9143                                    assert(ex == "+1_234_567_89_0**********");
9144                                    assert(ios.width() == 0);
9145                                }
9146                                ios.width(25);
9147                                right(ios);
9148                                {
9149                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9150                                    std::string ex(str, iter.base());
9151                                    assert(ex == "**********+1_234_567_89_0");
9152                                    assert(ios.width() == 0);
9153                                }
9154                                ios.width(25);
9155                                internal(ios);
9156                                {
9157                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9158                                    std::string ex(str, iter.base());
9159                                    assert(ex == "+**********1_234_567_89_0");
9160                                    assert(ios.width() == 0);
9161                                }
9162                            }
9163                        }
9164                        showpoint(ios);
9165                        {
9166                            ios.imbue(lc);
9167                            {
9168                                ios.width(0);
9169                                {
9170                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9171                                    std::string ex(str, iter.base());
9172                                    assert(ex == "+1234567890.");
9173                                    assert(ios.width() == 0);
9174                                }
9175                                ios.width(25);
9176                                left(ios);
9177                                {
9178                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9179                                    std::string ex(str, iter.base());
9180                                    assert(ex == "+1234567890.*************");
9181                                    assert(ios.width() == 0);
9182                                }
9183                                ios.width(25);
9184                                right(ios);
9185                                {
9186                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9187                                    std::string ex(str, iter.base());
9188                                    assert(ex == "*************+1234567890.");
9189                                    assert(ios.width() == 0);
9190                                }
9191                                ios.width(25);
9192                                internal(ios);
9193                                {
9194                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9195                                    std::string ex(str, iter.base());
9196                                    assert(ex == "+*************1234567890.");
9197                                    assert(ios.width() == 0);
9198                                }
9199                            }
9200                            ios.imbue(lg);
9201                            {
9202                                ios.width(0);
9203                                {
9204                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9205                                    std::string ex(str, iter.base());
9206                                    assert(ex == "+1_234_567_89_0;");
9207                                    assert(ios.width() == 0);
9208                                }
9209                                ios.width(25);
9210                                left(ios);
9211                                {
9212                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9213                                    std::string ex(str, iter.base());
9214                                    assert(ex == "+1_234_567_89_0;*********");
9215                                    assert(ios.width() == 0);
9216                                }
9217                                ios.width(25);
9218                                right(ios);
9219                                {
9220                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9221                                    std::string ex(str, iter.base());
9222                                    assert(ex == "*********+1_234_567_89_0;");
9223                                    assert(ios.width() == 0);
9224                                }
9225                                ios.width(25);
9226                                internal(ios);
9227                                {
9228                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9229                                    std::string ex(str, iter.base());
9230                                    assert(ex == "+*********1_234_567_89_0;");
9231                                    assert(ios.width() == 0);
9232                                }
9233                            }
9234                        }
9235                    }
9236                }
9237                uppercase(ios);
9238                {
9239                    noshowpos(ios);
9240                    {
9241                        noshowpoint(ios);
9242                        {
9243                            ios.imbue(lc);
9244                            {
9245                                ios.width(0);
9246                                {
9247                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9248                                    std::string ex(str, iter.base());
9249                                    assert(ex == "1234567890");
9250                                    assert(ios.width() == 0);
9251                                }
9252                                ios.width(25);
9253                                left(ios);
9254                                {
9255                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9256                                    std::string ex(str, iter.base());
9257                                    assert(ex == "1234567890***************");
9258                                    assert(ios.width() == 0);
9259                                }
9260                                ios.width(25);
9261                                right(ios);
9262                                {
9263                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9264                                    std::string ex(str, iter.base());
9265                                    assert(ex == "***************1234567890");
9266                                    assert(ios.width() == 0);
9267                                }
9268                                ios.width(25);
9269                                internal(ios);
9270                                {
9271                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9272                                    std::string ex(str, iter.base());
9273                                    assert(ex == "***************1234567890");
9274                                    assert(ios.width() == 0);
9275                                }
9276                            }
9277                            ios.imbue(lg);
9278                            {
9279                                ios.width(0);
9280                                {
9281                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9282                                    std::string ex(str, iter.base());
9283                                    assert(ex == "1_234_567_89_0");
9284                                    assert(ios.width() == 0);
9285                                }
9286                                ios.width(25);
9287                                left(ios);
9288                                {
9289                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9290                                    std::string ex(str, iter.base());
9291                                    assert(ex == "1_234_567_89_0***********");
9292                                    assert(ios.width() == 0);
9293                                }
9294                                ios.width(25);
9295                                right(ios);
9296                                {
9297                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9298                                    std::string ex(str, iter.base());
9299                                    assert(ex == "***********1_234_567_89_0");
9300                                    assert(ios.width() == 0);
9301                                }
9302                                ios.width(25);
9303                                internal(ios);
9304                                {
9305                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9306                                    std::string ex(str, iter.base());
9307                                    assert(ex == "***********1_234_567_89_0");
9308                                    assert(ios.width() == 0);
9309                                }
9310                            }
9311                        }
9312                        showpoint(ios);
9313                        {
9314                            ios.imbue(lc);
9315                            {
9316                                ios.width(0);
9317                                {
9318                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9319                                    std::string ex(str, iter.base());
9320                                    assert(ex == "1234567890.");
9321                                    assert(ios.width() == 0);
9322                                }
9323                                ios.width(25);
9324                                left(ios);
9325                                {
9326                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9327                                    std::string ex(str, iter.base());
9328                                    assert(ex == "1234567890.**************");
9329                                    assert(ios.width() == 0);
9330                                }
9331                                ios.width(25);
9332                                right(ios);
9333                                {
9334                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9335                                    std::string ex(str, iter.base());
9336                                    assert(ex == "**************1234567890.");
9337                                    assert(ios.width() == 0);
9338                                }
9339                                ios.width(25);
9340                                internal(ios);
9341                                {
9342                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9343                                    std::string ex(str, iter.base());
9344                                    assert(ex == "**************1234567890.");
9345                                    assert(ios.width() == 0);
9346                                }
9347                            }
9348                            ios.imbue(lg);
9349                            {
9350                                ios.width(0);
9351                                {
9352                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9353                                    std::string ex(str, iter.base());
9354                                    assert(ex == "1_234_567_89_0;");
9355                                    assert(ios.width() == 0);
9356                                }
9357                                ios.width(25);
9358                                left(ios);
9359                                {
9360                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9361                                    std::string ex(str, iter.base());
9362                                    assert(ex == "1_234_567_89_0;**********");
9363                                    assert(ios.width() == 0);
9364                                }
9365                                ios.width(25);
9366                                right(ios);
9367                                {
9368                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9369                                    std::string ex(str, iter.base());
9370                                    assert(ex == "**********1_234_567_89_0;");
9371                                    assert(ios.width() == 0);
9372                                }
9373                                ios.width(25);
9374                                internal(ios);
9375                                {
9376                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9377                                    std::string ex(str, iter.base());
9378                                    assert(ex == "**********1_234_567_89_0;");
9379                                    assert(ios.width() == 0);
9380                                }
9381                            }
9382                        }
9383                    }
9384                    showpos(ios);
9385                    {
9386                        noshowpoint(ios);
9387                        {
9388                            ios.imbue(lc);
9389                            {
9390                                ios.width(0);
9391                                {
9392                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9393                                    std::string ex(str, iter.base());
9394                                    assert(ex == "+1234567890");
9395                                    assert(ios.width() == 0);
9396                                }
9397                                ios.width(25);
9398                                left(ios);
9399                                {
9400                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9401                                    std::string ex(str, iter.base());
9402                                    assert(ex == "+1234567890**************");
9403                                    assert(ios.width() == 0);
9404                                }
9405                                ios.width(25);
9406                                right(ios);
9407                                {
9408                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9409                                    std::string ex(str, iter.base());
9410                                    assert(ex == "**************+1234567890");
9411                                    assert(ios.width() == 0);
9412                                }
9413                                ios.width(25);
9414                                internal(ios);
9415                                {
9416                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9417                                    std::string ex(str, iter.base());
9418                                    assert(ex == "+**************1234567890");
9419                                    assert(ios.width() == 0);
9420                                }
9421                            }
9422                            ios.imbue(lg);
9423                            {
9424                                ios.width(0);
9425                                {
9426                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9427                                    std::string ex(str, iter.base());
9428                                    assert(ex == "+1_234_567_89_0");
9429                                    assert(ios.width() == 0);
9430                                }
9431                                ios.width(25);
9432                                left(ios);
9433                                {
9434                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9435                                    std::string ex(str, iter.base());
9436                                    assert(ex == "+1_234_567_89_0**********");
9437                                    assert(ios.width() == 0);
9438                                }
9439                                ios.width(25);
9440                                right(ios);
9441                                {
9442                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9443                                    std::string ex(str, iter.base());
9444                                    assert(ex == "**********+1_234_567_89_0");
9445                                    assert(ios.width() == 0);
9446                                }
9447                                ios.width(25);
9448                                internal(ios);
9449                                {
9450                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9451                                    std::string ex(str, iter.base());
9452                                    assert(ex == "+**********1_234_567_89_0");
9453                                    assert(ios.width() == 0);
9454                                }
9455                            }
9456                        }
9457                        showpoint(ios);
9458                        {
9459                            ios.imbue(lc);
9460                            {
9461                                ios.width(0);
9462                                {
9463                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9464                                    std::string ex(str, iter.base());
9465                                    assert(ex == "+1234567890.");
9466                                    assert(ios.width() == 0);
9467                                }
9468                                ios.width(25);
9469                                left(ios);
9470                                {
9471                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9472                                    std::string ex(str, iter.base());
9473                                    assert(ex == "+1234567890.*************");
9474                                    assert(ios.width() == 0);
9475                                }
9476                                ios.width(25);
9477                                right(ios);
9478                                {
9479                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9480                                    std::string ex(str, iter.base());
9481                                    assert(ex == "*************+1234567890.");
9482                                    assert(ios.width() == 0);
9483                                }
9484                                ios.width(25);
9485                                internal(ios);
9486                                {
9487                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9488                                    std::string ex(str, iter.base());
9489                                    assert(ex == "+*************1234567890.");
9490                                    assert(ios.width() == 0);
9491                                }
9492                            }
9493                            ios.imbue(lg);
9494                            {
9495                                ios.width(0);
9496                                {
9497                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9498                                    std::string ex(str, iter.base());
9499                                    assert(ex == "+1_234_567_89_0;");
9500                                    assert(ios.width() == 0);
9501                                }
9502                                ios.width(25);
9503                                left(ios);
9504                                {
9505                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9506                                    std::string ex(str, iter.base());
9507                                    assert(ex == "+1_234_567_89_0;*********");
9508                                    assert(ios.width() == 0);
9509                                }
9510                                ios.width(25);
9511                                right(ios);
9512                                {
9513                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9514                                    std::string ex(str, iter.base());
9515                                    assert(ex == "*********+1_234_567_89_0;");
9516                                    assert(ios.width() == 0);
9517                                }
9518                                ios.width(25);
9519                                internal(ios);
9520                                {
9521                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9522                                    std::string ex(str, iter.base());
9523                                    assert(ex == "+*********1_234_567_89_0;");
9524                                    assert(ios.width() == 0);
9525                                }
9526                            }
9527                        }
9528                    }
9529                }
9530            }
9531            ios.precision(1);
9532            {
9533                nouppercase(ios);
9534                {
9535                    noshowpos(ios);
9536                    {
9537                        noshowpoint(ios);
9538                        {
9539                            ios.imbue(lc);
9540                            {
9541                                ios.width(0);
9542                                {
9543                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9544                                    std::string ex(str, iter.base());
9545                                    assert(ex == "1234567890.1");
9546                                    assert(ios.width() == 0);
9547                                }
9548                                ios.width(25);
9549                                left(ios);
9550                                {
9551                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9552                                    std::string ex(str, iter.base());
9553                                    assert(ex == "1234567890.1*************");
9554                                    assert(ios.width() == 0);
9555                                }
9556                                ios.width(25);
9557                                right(ios);
9558                                {
9559                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9560                                    std::string ex(str, iter.base());
9561                                    assert(ex == "*************1234567890.1");
9562                                    assert(ios.width() == 0);
9563                                }
9564                                ios.width(25);
9565                                internal(ios);
9566                                {
9567                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9568                                    std::string ex(str, iter.base());
9569                                    assert(ex == "*************1234567890.1");
9570                                    assert(ios.width() == 0);
9571                                }
9572                            }
9573                            ios.imbue(lg);
9574                            {
9575                                ios.width(0);
9576                                {
9577                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9578                                    std::string ex(str, iter.base());
9579                                    assert(ex == "1_234_567_89_0;1");
9580                                    assert(ios.width() == 0);
9581                                }
9582                                ios.width(25);
9583                                left(ios);
9584                                {
9585                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9586                                    std::string ex(str, iter.base());
9587                                    assert(ex == "1_234_567_89_0;1*********");
9588                                    assert(ios.width() == 0);
9589                                }
9590                                ios.width(25);
9591                                right(ios);
9592                                {
9593                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9594                                    std::string ex(str, iter.base());
9595                                    assert(ex == "*********1_234_567_89_0;1");
9596                                    assert(ios.width() == 0);
9597                                }
9598                                ios.width(25);
9599                                internal(ios);
9600                                {
9601                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9602                                    std::string ex(str, iter.base());
9603                                    assert(ex == "*********1_234_567_89_0;1");
9604                                    assert(ios.width() == 0);
9605                                }
9606                            }
9607                        }
9608                        showpoint(ios);
9609                        {
9610                            ios.imbue(lc);
9611                            {
9612                                ios.width(0);
9613                                {
9614                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9615                                    std::string ex(str, iter.base());
9616                                    assert(ex == "1234567890.1");
9617                                    assert(ios.width() == 0);
9618                                }
9619                                ios.width(25);
9620                                left(ios);
9621                                {
9622                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9623                                    std::string ex(str, iter.base());
9624                                    assert(ex == "1234567890.1*************");
9625                                    assert(ios.width() == 0);
9626                                }
9627                                ios.width(25);
9628                                right(ios);
9629                                {
9630                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9631                                    std::string ex(str, iter.base());
9632                                    assert(ex == "*************1234567890.1");
9633                                    assert(ios.width() == 0);
9634                                }
9635                                ios.width(25);
9636                                internal(ios);
9637                                {
9638                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9639                                    std::string ex(str, iter.base());
9640                                    assert(ex == "*************1234567890.1");
9641                                    assert(ios.width() == 0);
9642                                }
9643                            }
9644                            ios.imbue(lg);
9645                            {
9646                                ios.width(0);
9647                                {
9648                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9649                                    std::string ex(str, iter.base());
9650                                    assert(ex == "1_234_567_89_0;1");
9651                                    assert(ios.width() == 0);
9652                                }
9653                                ios.width(25);
9654                                left(ios);
9655                                {
9656                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9657                                    std::string ex(str, iter.base());
9658                                    assert(ex == "1_234_567_89_0;1*********");
9659                                    assert(ios.width() == 0);
9660                                }
9661                                ios.width(25);
9662                                right(ios);
9663                                {
9664                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9665                                    std::string ex(str, iter.base());
9666                                    assert(ex == "*********1_234_567_89_0;1");
9667                                    assert(ios.width() == 0);
9668                                }
9669                                ios.width(25);
9670                                internal(ios);
9671                                {
9672                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9673                                    std::string ex(str, iter.base());
9674                                    assert(ex == "*********1_234_567_89_0;1");
9675                                    assert(ios.width() == 0);
9676                                }
9677                            }
9678                        }
9679                    }
9680                    showpos(ios);
9681                    {
9682                        noshowpoint(ios);
9683                        {
9684                            ios.imbue(lc);
9685                            {
9686                                ios.width(0);
9687                                {
9688                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9689                                    std::string ex(str, iter.base());
9690                                    assert(ex == "+1234567890.1");
9691                                    assert(ios.width() == 0);
9692                                }
9693                                ios.width(25);
9694                                left(ios);
9695                                {
9696                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9697                                    std::string ex(str, iter.base());
9698                                    assert(ex == "+1234567890.1************");
9699                                    assert(ios.width() == 0);
9700                                }
9701                                ios.width(25);
9702                                right(ios);
9703                                {
9704                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9705                                    std::string ex(str, iter.base());
9706                                    assert(ex == "************+1234567890.1");
9707                                    assert(ios.width() == 0);
9708                                }
9709                                ios.width(25);
9710                                internal(ios);
9711                                {
9712                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9713                                    std::string ex(str, iter.base());
9714                                    assert(ex == "+************1234567890.1");
9715                                    assert(ios.width() == 0);
9716                                }
9717                            }
9718                            ios.imbue(lg);
9719                            {
9720                                ios.width(0);
9721                                {
9722                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9723                                    std::string ex(str, iter.base());
9724                                    assert(ex == "+1_234_567_89_0;1");
9725                                    assert(ios.width() == 0);
9726                                }
9727                                ios.width(25);
9728                                left(ios);
9729                                {
9730                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9731                                    std::string ex(str, iter.base());
9732                                    assert(ex == "+1_234_567_89_0;1********");
9733                                    assert(ios.width() == 0);
9734                                }
9735                                ios.width(25);
9736                                right(ios);
9737                                {
9738                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9739                                    std::string ex(str, iter.base());
9740                                    assert(ex == "********+1_234_567_89_0;1");
9741                                    assert(ios.width() == 0);
9742                                }
9743                                ios.width(25);
9744                                internal(ios);
9745                                {
9746                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9747                                    std::string ex(str, iter.base());
9748                                    assert(ex == "+********1_234_567_89_0;1");
9749                                    assert(ios.width() == 0);
9750                                }
9751                            }
9752                        }
9753                        showpoint(ios);
9754                        {
9755                            ios.imbue(lc);
9756                            {
9757                                ios.width(0);
9758                                {
9759                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9760                                    std::string ex(str, iter.base());
9761                                    assert(ex == "+1234567890.1");
9762                                    assert(ios.width() == 0);
9763                                }
9764                                ios.width(25);
9765                                left(ios);
9766                                {
9767                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9768                                    std::string ex(str, iter.base());
9769                                    assert(ex == "+1234567890.1************");
9770                                    assert(ios.width() == 0);
9771                                }
9772                                ios.width(25);
9773                                right(ios);
9774                                {
9775                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9776                                    std::string ex(str, iter.base());
9777                                    assert(ex == "************+1234567890.1");
9778                                    assert(ios.width() == 0);
9779                                }
9780                                ios.width(25);
9781                                internal(ios);
9782                                {
9783                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9784                                    std::string ex(str, iter.base());
9785                                    assert(ex == "+************1234567890.1");
9786                                    assert(ios.width() == 0);
9787                                }
9788                            }
9789                            ios.imbue(lg);
9790                            {
9791                                ios.width(0);
9792                                {
9793                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9794                                    std::string ex(str, iter.base());
9795                                    assert(ex == "+1_234_567_89_0;1");
9796                                    assert(ios.width() == 0);
9797                                }
9798                                ios.width(25);
9799                                left(ios);
9800                                {
9801                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9802                                    std::string ex(str, iter.base());
9803                                    assert(ex == "+1_234_567_89_0;1********");
9804                                    assert(ios.width() == 0);
9805                                }
9806                                ios.width(25);
9807                                right(ios);
9808                                {
9809                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9810                                    std::string ex(str, iter.base());
9811                                    assert(ex == "********+1_234_567_89_0;1");
9812                                    assert(ios.width() == 0);
9813                                }
9814                                ios.width(25);
9815                                internal(ios);
9816                                {
9817                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9818                                    std::string ex(str, iter.base());
9819                                    assert(ex == "+********1_234_567_89_0;1");
9820                                    assert(ios.width() == 0);
9821                                }
9822                            }
9823                        }
9824                    }
9825                }
9826                uppercase(ios);
9827                {
9828                    noshowpos(ios);
9829                    {
9830                        noshowpoint(ios);
9831                        {
9832                            ios.imbue(lc);
9833                            {
9834                                ios.width(0);
9835                                {
9836                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9837                                    std::string ex(str, iter.base());
9838                                    assert(ex == "1234567890.1");
9839                                    assert(ios.width() == 0);
9840                                }
9841                                ios.width(25);
9842                                left(ios);
9843                                {
9844                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9845                                    std::string ex(str, iter.base());
9846                                    assert(ex == "1234567890.1*************");
9847                                    assert(ios.width() == 0);
9848                                }
9849                                ios.width(25);
9850                                right(ios);
9851                                {
9852                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9853                                    std::string ex(str, iter.base());
9854                                    assert(ex == "*************1234567890.1");
9855                                    assert(ios.width() == 0);
9856                                }
9857                                ios.width(25);
9858                                internal(ios);
9859                                {
9860                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9861                                    std::string ex(str, iter.base());
9862                                    assert(ex == "*************1234567890.1");
9863                                    assert(ios.width() == 0);
9864                                }
9865                            }
9866                            ios.imbue(lg);
9867                            {
9868                                ios.width(0);
9869                                {
9870                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9871                                    std::string ex(str, iter.base());
9872                                    assert(ex == "1_234_567_89_0;1");
9873                                    assert(ios.width() == 0);
9874                                }
9875                                ios.width(25);
9876                                left(ios);
9877                                {
9878                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9879                                    std::string ex(str, iter.base());
9880                                    assert(ex == "1_234_567_89_0;1*********");
9881                                    assert(ios.width() == 0);
9882                                }
9883                                ios.width(25);
9884                                right(ios);
9885                                {
9886                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9887                                    std::string ex(str, iter.base());
9888                                    assert(ex == "*********1_234_567_89_0;1");
9889                                    assert(ios.width() == 0);
9890                                }
9891                                ios.width(25);
9892                                internal(ios);
9893                                {
9894                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9895                                    std::string ex(str, iter.base());
9896                                    assert(ex == "*********1_234_567_89_0;1");
9897                                    assert(ios.width() == 0);
9898                                }
9899                            }
9900                        }
9901                        showpoint(ios);
9902                        {
9903                            ios.imbue(lc);
9904                            {
9905                                ios.width(0);
9906                                {
9907                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9908                                    std::string ex(str, iter.base());
9909                                    assert(ex == "1234567890.1");
9910                                    assert(ios.width() == 0);
9911                                }
9912                                ios.width(25);
9913                                left(ios);
9914                                {
9915                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9916                                    std::string ex(str, iter.base());
9917                                    assert(ex == "1234567890.1*************");
9918                                    assert(ios.width() == 0);
9919                                }
9920                                ios.width(25);
9921                                right(ios);
9922                                {
9923                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9924                                    std::string ex(str, iter.base());
9925                                    assert(ex == "*************1234567890.1");
9926                                    assert(ios.width() == 0);
9927                                }
9928                                ios.width(25);
9929                                internal(ios);
9930                                {
9931                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9932                                    std::string ex(str, iter.base());
9933                                    assert(ex == "*************1234567890.1");
9934                                    assert(ios.width() == 0);
9935                                }
9936                            }
9937                            ios.imbue(lg);
9938                            {
9939                                ios.width(0);
9940                                {
9941                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9942                                    std::string ex(str, iter.base());
9943                                    assert(ex == "1_234_567_89_0;1");
9944                                    assert(ios.width() == 0);
9945                                }
9946                                ios.width(25);
9947                                left(ios);
9948                                {
9949                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9950                                    std::string ex(str, iter.base());
9951                                    assert(ex == "1_234_567_89_0;1*********");
9952                                    assert(ios.width() == 0);
9953                                }
9954                                ios.width(25);
9955                                right(ios);
9956                                {
9957                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9958                                    std::string ex(str, iter.base());
9959                                    assert(ex == "*********1_234_567_89_0;1");
9960                                    assert(ios.width() == 0);
9961                                }
9962                                ios.width(25);
9963                                internal(ios);
9964                                {
9965                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9966                                    std::string ex(str, iter.base());
9967                                    assert(ex == "*********1_234_567_89_0;1");
9968                                    assert(ios.width() == 0);
9969                                }
9970                            }
9971                        }
9972                    }
9973                    showpos(ios);
9974                    {
9975                        noshowpoint(ios);
9976                        {
9977                            ios.imbue(lc);
9978                            {
9979                                ios.width(0);
9980                                {
9981                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9982                                    std::string ex(str, iter.base());
9983                                    assert(ex == "+1234567890.1");
9984                                    assert(ios.width() == 0);
9985                                }
9986                                ios.width(25);
9987                                left(ios);
9988                                {
9989                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9990                                    std::string ex(str, iter.base());
9991                                    assert(ex == "+1234567890.1************");
9992                                    assert(ios.width() == 0);
9993                                }
9994                                ios.width(25);
9995                                right(ios);
9996                                {
9997                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
9998                                    std::string ex(str, iter.base());
9999                                    assert(ex == "************+1234567890.1");
10000                                    assert(ios.width() == 0);
10001                                }
10002                                ios.width(25);
10003                                internal(ios);
10004                                {
10005                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10006                                    std::string ex(str, iter.base());
10007                                    assert(ex == "+************1234567890.1");
10008                                    assert(ios.width() == 0);
10009                                }
10010                            }
10011                            ios.imbue(lg);
10012                            {
10013                                ios.width(0);
10014                                {
10015                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10016                                    std::string ex(str, iter.base());
10017                                    assert(ex == "+1_234_567_89_0;1");
10018                                    assert(ios.width() == 0);
10019                                }
10020                                ios.width(25);
10021                                left(ios);
10022                                {
10023                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10024                                    std::string ex(str, iter.base());
10025                                    assert(ex == "+1_234_567_89_0;1********");
10026                                    assert(ios.width() == 0);
10027                                }
10028                                ios.width(25);
10029                                right(ios);
10030                                {
10031                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10032                                    std::string ex(str, iter.base());
10033                                    assert(ex == "********+1_234_567_89_0;1");
10034                                    assert(ios.width() == 0);
10035                                }
10036                                ios.width(25);
10037                                internal(ios);
10038                                {
10039                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10040                                    std::string ex(str, iter.base());
10041                                    assert(ex == "+********1_234_567_89_0;1");
10042                                    assert(ios.width() == 0);
10043                                }
10044                            }
10045                        }
10046                        showpoint(ios);
10047                        {
10048                            ios.imbue(lc);
10049                            {
10050                                ios.width(0);
10051                                {
10052                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10053                                    std::string ex(str, iter.base());
10054                                    assert(ex == "+1234567890.1");
10055                                    assert(ios.width() == 0);
10056                                }
10057                                ios.width(25);
10058                                left(ios);
10059                                {
10060                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10061                                    std::string ex(str, iter.base());
10062                                    assert(ex == "+1234567890.1************");
10063                                    assert(ios.width() == 0);
10064                                }
10065                                ios.width(25);
10066                                right(ios);
10067                                {
10068                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10069                                    std::string ex(str, iter.base());
10070                                    assert(ex == "************+1234567890.1");
10071                                    assert(ios.width() == 0);
10072                                }
10073                                ios.width(25);
10074                                internal(ios);
10075                                {
10076                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10077                                    std::string ex(str, iter.base());
10078                                    assert(ex == "+************1234567890.1");
10079                                    assert(ios.width() == 0);
10080                                }
10081                            }
10082                            ios.imbue(lg);
10083                            {
10084                                ios.width(0);
10085                                {
10086                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10087                                    std::string ex(str, iter.base());
10088                                    assert(ex == "+1_234_567_89_0;1");
10089                                    assert(ios.width() == 0);
10090                                }
10091                                ios.width(25);
10092                                left(ios);
10093                                {
10094                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10095                                    std::string ex(str, iter.base());
10096                                    assert(ex == "+1_234_567_89_0;1********");
10097                                    assert(ios.width() == 0);
10098                                }
10099                                ios.width(25);
10100                                right(ios);
10101                                {
10102                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10103                                    std::string ex(str, iter.base());
10104                                    assert(ex == "********+1_234_567_89_0;1");
10105                                    assert(ios.width() == 0);
10106                                }
10107                                ios.width(25);
10108                                internal(ios);
10109                                {
10110                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10111                                    std::string ex(str, iter.base());
10112                                    assert(ex == "+********1_234_567_89_0;1");
10113                                    assert(ios.width() == 0);
10114                                }
10115                            }
10116                        }
10117                    }
10118                }
10119            }
10120            ios.precision(6);
10121            {
10122                nouppercase(ios);
10123                {
10124                    noshowpos(ios);
10125                    {
10126                        noshowpoint(ios);
10127                        {
10128                            ios.imbue(lc);
10129                            {
10130                                ios.width(0);
10131                                {
10132                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10133                                    std::string ex(str, iter.base());
10134                                    assert(ex == "1234567890.125000");
10135                                    assert(ios.width() == 0);
10136                                }
10137                                ios.width(25);
10138                                left(ios);
10139                                {
10140                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10141                                    std::string ex(str, iter.base());
10142                                    assert(ex == "1234567890.125000********");
10143                                    assert(ios.width() == 0);
10144                                }
10145                                ios.width(25);
10146                                right(ios);
10147                                {
10148                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10149                                    std::string ex(str, iter.base());
10150                                    assert(ex == "********1234567890.125000");
10151                                    assert(ios.width() == 0);
10152                                }
10153                                ios.width(25);
10154                                internal(ios);
10155                                {
10156                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10157                                    std::string ex(str, iter.base());
10158                                    assert(ex == "********1234567890.125000");
10159                                    assert(ios.width() == 0);
10160                                }
10161                            }
10162                            ios.imbue(lg);
10163                            {
10164                                ios.width(0);
10165                                {
10166                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10167                                    std::string ex(str, iter.base());
10168                                    assert(ex == "1_234_567_89_0;125000");
10169                                    assert(ios.width() == 0);
10170                                }
10171                                ios.width(25);
10172                                left(ios);
10173                                {
10174                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10175                                    std::string ex(str, iter.base());
10176                                    assert(ex == "1_234_567_89_0;125000****");
10177                                    assert(ios.width() == 0);
10178                                }
10179                                ios.width(25);
10180                                right(ios);
10181                                {
10182                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10183                                    std::string ex(str, iter.base());
10184                                    assert(ex == "****1_234_567_89_0;125000");
10185                                    assert(ios.width() == 0);
10186                                }
10187                                ios.width(25);
10188                                internal(ios);
10189                                {
10190                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10191                                    std::string ex(str, iter.base());
10192                                    assert(ex == "****1_234_567_89_0;125000");
10193                                    assert(ios.width() == 0);
10194                                }
10195                            }
10196                        }
10197                        showpoint(ios);
10198                        {
10199                            ios.imbue(lc);
10200                            {
10201                                ios.width(0);
10202                                {
10203                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10204                                    std::string ex(str, iter.base());
10205                                    assert(ex == "1234567890.125000");
10206                                    assert(ios.width() == 0);
10207                                }
10208                                ios.width(25);
10209                                left(ios);
10210                                {
10211                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10212                                    std::string ex(str, iter.base());
10213                                    assert(ex == "1234567890.125000********");
10214                                    assert(ios.width() == 0);
10215                                }
10216                                ios.width(25);
10217                                right(ios);
10218                                {
10219                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10220                                    std::string ex(str, iter.base());
10221                                    assert(ex == "********1234567890.125000");
10222                                    assert(ios.width() == 0);
10223                                }
10224                                ios.width(25);
10225                                internal(ios);
10226                                {
10227                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10228                                    std::string ex(str, iter.base());
10229                                    assert(ex == "********1234567890.125000");
10230                                    assert(ios.width() == 0);
10231                                }
10232                            }
10233                            ios.imbue(lg);
10234                            {
10235                                ios.width(0);
10236                                {
10237                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10238                                    std::string ex(str, iter.base());
10239                                    assert(ex == "1_234_567_89_0;125000");
10240                                    assert(ios.width() == 0);
10241                                }
10242                                ios.width(25);
10243                                left(ios);
10244                                {
10245                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10246                                    std::string ex(str, iter.base());
10247                                    assert(ex == "1_234_567_89_0;125000****");
10248                                    assert(ios.width() == 0);
10249                                }
10250                                ios.width(25);
10251                                right(ios);
10252                                {
10253                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10254                                    std::string ex(str, iter.base());
10255                                    assert(ex == "****1_234_567_89_0;125000");
10256                                    assert(ios.width() == 0);
10257                                }
10258                                ios.width(25);
10259                                internal(ios);
10260                                {
10261                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10262                                    std::string ex(str, iter.base());
10263                                    assert(ex == "****1_234_567_89_0;125000");
10264                                    assert(ios.width() == 0);
10265                                }
10266                            }
10267                        }
10268                    }
10269                    showpos(ios);
10270                    {
10271                        noshowpoint(ios);
10272                        {
10273                            ios.imbue(lc);
10274                            {
10275                                ios.width(0);
10276                                {
10277                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10278                                    std::string ex(str, iter.base());
10279                                    assert(ex == "+1234567890.125000");
10280                                    assert(ios.width() == 0);
10281                                }
10282                                ios.width(25);
10283                                left(ios);
10284                                {
10285                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10286                                    std::string ex(str, iter.base());
10287                                    assert(ex == "+1234567890.125000*******");
10288                                    assert(ios.width() == 0);
10289                                }
10290                                ios.width(25);
10291                                right(ios);
10292                                {
10293                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10294                                    std::string ex(str, iter.base());
10295                                    assert(ex == "*******+1234567890.125000");
10296                                    assert(ios.width() == 0);
10297                                }
10298                                ios.width(25);
10299                                internal(ios);
10300                                {
10301                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10302                                    std::string ex(str, iter.base());
10303                                    assert(ex == "+*******1234567890.125000");
10304                                    assert(ios.width() == 0);
10305                                }
10306                            }
10307                            ios.imbue(lg);
10308                            {
10309                                ios.width(0);
10310                                {
10311                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10312                                    std::string ex(str, iter.base());
10313                                    assert(ex == "+1_234_567_89_0;125000");
10314                                    assert(ios.width() == 0);
10315                                }
10316                                ios.width(25);
10317                                left(ios);
10318                                {
10319                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10320                                    std::string ex(str, iter.base());
10321                                    assert(ex == "+1_234_567_89_0;125000***");
10322                                    assert(ios.width() == 0);
10323                                }
10324                                ios.width(25);
10325                                right(ios);
10326                                {
10327                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10328                                    std::string ex(str, iter.base());
10329                                    assert(ex == "***+1_234_567_89_0;125000");
10330                                    assert(ios.width() == 0);
10331                                }
10332                                ios.width(25);
10333                                internal(ios);
10334                                {
10335                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10336                                    std::string ex(str, iter.base());
10337                                    assert(ex == "+***1_234_567_89_0;125000");
10338                                    assert(ios.width() == 0);
10339                                }
10340                            }
10341                        }
10342                        showpoint(ios);
10343                        {
10344                            ios.imbue(lc);
10345                            {
10346                                ios.width(0);
10347                                {
10348                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10349                                    std::string ex(str, iter.base());
10350                                    assert(ex == "+1234567890.125000");
10351                                    assert(ios.width() == 0);
10352                                }
10353                                ios.width(25);
10354                                left(ios);
10355                                {
10356                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10357                                    std::string ex(str, iter.base());
10358                                    assert(ex == "+1234567890.125000*******");
10359                                    assert(ios.width() == 0);
10360                                }
10361                                ios.width(25);
10362                                right(ios);
10363                                {
10364                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10365                                    std::string ex(str, iter.base());
10366                                    assert(ex == "*******+1234567890.125000");
10367                                    assert(ios.width() == 0);
10368                                }
10369                                ios.width(25);
10370                                internal(ios);
10371                                {
10372                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10373                                    std::string ex(str, iter.base());
10374                                    assert(ex == "+*******1234567890.125000");
10375                                    assert(ios.width() == 0);
10376                                }
10377                            }
10378                            ios.imbue(lg);
10379                            {
10380                                ios.width(0);
10381                                {
10382                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10383                                    std::string ex(str, iter.base());
10384                                    assert(ex == "+1_234_567_89_0;125000");
10385                                    assert(ios.width() == 0);
10386                                }
10387                                ios.width(25);
10388                                left(ios);
10389                                {
10390                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10391                                    std::string ex(str, iter.base());
10392                                    assert(ex == "+1_234_567_89_0;125000***");
10393                                    assert(ios.width() == 0);
10394                                }
10395                                ios.width(25);
10396                                right(ios);
10397                                {
10398                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10399                                    std::string ex(str, iter.base());
10400                                    assert(ex == "***+1_234_567_89_0;125000");
10401                                    assert(ios.width() == 0);
10402                                }
10403                                ios.width(25);
10404                                internal(ios);
10405                                {
10406                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10407                                    std::string ex(str, iter.base());
10408                                    assert(ex == "+***1_234_567_89_0;125000");
10409                                    assert(ios.width() == 0);
10410                                }
10411                            }
10412                        }
10413                    }
10414                }
10415                uppercase(ios);
10416                {
10417                    noshowpos(ios);
10418                    {
10419                        noshowpoint(ios);
10420                        {
10421                            ios.imbue(lc);
10422                            {
10423                                ios.width(0);
10424                                {
10425                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10426                                    std::string ex(str, iter.base());
10427                                    assert(ex == "1234567890.125000");
10428                                    assert(ios.width() == 0);
10429                                }
10430                                ios.width(25);
10431                                left(ios);
10432                                {
10433                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10434                                    std::string ex(str, iter.base());
10435                                    assert(ex == "1234567890.125000********");
10436                                    assert(ios.width() == 0);
10437                                }
10438                                ios.width(25);
10439                                right(ios);
10440                                {
10441                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10442                                    std::string ex(str, iter.base());
10443                                    assert(ex == "********1234567890.125000");
10444                                    assert(ios.width() == 0);
10445                                }
10446                                ios.width(25);
10447                                internal(ios);
10448                                {
10449                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10450                                    std::string ex(str, iter.base());
10451                                    assert(ex == "********1234567890.125000");
10452                                    assert(ios.width() == 0);
10453                                }
10454                            }
10455                            ios.imbue(lg);
10456                            {
10457                                ios.width(0);
10458                                {
10459                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10460                                    std::string ex(str, iter.base());
10461                                    assert(ex == "1_234_567_89_0;125000");
10462                                    assert(ios.width() == 0);
10463                                }
10464                                ios.width(25);
10465                                left(ios);
10466                                {
10467                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10468                                    std::string ex(str, iter.base());
10469                                    assert(ex == "1_234_567_89_0;125000****");
10470                                    assert(ios.width() == 0);
10471                                }
10472                                ios.width(25);
10473                                right(ios);
10474                                {
10475                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10476                                    std::string ex(str, iter.base());
10477                                    assert(ex == "****1_234_567_89_0;125000");
10478                                    assert(ios.width() == 0);
10479                                }
10480                                ios.width(25);
10481                                internal(ios);
10482                                {
10483                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10484                                    std::string ex(str, iter.base());
10485                                    assert(ex == "****1_234_567_89_0;125000");
10486                                    assert(ios.width() == 0);
10487                                }
10488                            }
10489                        }
10490                        showpoint(ios);
10491                        {
10492                            ios.imbue(lc);
10493                            {
10494                                ios.width(0);
10495                                {
10496                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10497                                    std::string ex(str, iter.base());
10498                                    assert(ex == "1234567890.125000");
10499                                    assert(ios.width() == 0);
10500                                }
10501                                ios.width(25);
10502                                left(ios);
10503                                {
10504                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10505                                    std::string ex(str, iter.base());
10506                                    assert(ex == "1234567890.125000********");
10507                                    assert(ios.width() == 0);
10508                                }
10509                                ios.width(25);
10510                                right(ios);
10511                                {
10512                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10513                                    std::string ex(str, iter.base());
10514                                    assert(ex == "********1234567890.125000");
10515                                    assert(ios.width() == 0);
10516                                }
10517                                ios.width(25);
10518                                internal(ios);
10519                                {
10520                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10521                                    std::string ex(str, iter.base());
10522                                    assert(ex == "********1234567890.125000");
10523                                    assert(ios.width() == 0);
10524                                }
10525                            }
10526                            ios.imbue(lg);
10527                            {
10528                                ios.width(0);
10529                                {
10530                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10531                                    std::string ex(str, iter.base());
10532                                    assert(ex == "1_234_567_89_0;125000");
10533                                    assert(ios.width() == 0);
10534                                }
10535                                ios.width(25);
10536                                left(ios);
10537                                {
10538                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10539                                    std::string ex(str, iter.base());
10540                                    assert(ex == "1_234_567_89_0;125000****");
10541                                    assert(ios.width() == 0);
10542                                }
10543                                ios.width(25);
10544                                right(ios);
10545                                {
10546                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10547                                    std::string ex(str, iter.base());
10548                                    assert(ex == "****1_234_567_89_0;125000");
10549                                    assert(ios.width() == 0);
10550                                }
10551                                ios.width(25);
10552                                internal(ios);
10553                                {
10554                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10555                                    std::string ex(str, iter.base());
10556                                    assert(ex == "****1_234_567_89_0;125000");
10557                                    assert(ios.width() == 0);
10558                                }
10559                            }
10560                        }
10561                    }
10562                    showpos(ios);
10563                    {
10564                        noshowpoint(ios);
10565                        {
10566                            ios.imbue(lc);
10567                            {
10568                                ios.width(0);
10569                                {
10570                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10571                                    std::string ex(str, iter.base());
10572                                    assert(ex == "+1234567890.125000");
10573                                    assert(ios.width() == 0);
10574                                }
10575                                ios.width(25);
10576                                left(ios);
10577                                {
10578                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10579                                    std::string ex(str, iter.base());
10580                                    assert(ex == "+1234567890.125000*******");
10581                                    assert(ios.width() == 0);
10582                                }
10583                                ios.width(25);
10584                                right(ios);
10585                                {
10586                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10587                                    std::string ex(str, iter.base());
10588                                    assert(ex == "*******+1234567890.125000");
10589                                    assert(ios.width() == 0);
10590                                }
10591                                ios.width(25);
10592                                internal(ios);
10593                                {
10594                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10595                                    std::string ex(str, iter.base());
10596                                    assert(ex == "+*******1234567890.125000");
10597                                    assert(ios.width() == 0);
10598                                }
10599                            }
10600                            ios.imbue(lg);
10601                            {
10602                                ios.width(0);
10603                                {
10604                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10605                                    std::string ex(str, iter.base());
10606                                    assert(ex == "+1_234_567_89_0;125000");
10607                                    assert(ios.width() == 0);
10608                                }
10609                                ios.width(25);
10610                                left(ios);
10611                                {
10612                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10613                                    std::string ex(str, iter.base());
10614                                    assert(ex == "+1_234_567_89_0;125000***");
10615                                    assert(ios.width() == 0);
10616                                }
10617                                ios.width(25);
10618                                right(ios);
10619                                {
10620                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10621                                    std::string ex(str, iter.base());
10622                                    assert(ex == "***+1_234_567_89_0;125000");
10623                                    assert(ios.width() == 0);
10624                                }
10625                                ios.width(25);
10626                                internal(ios);
10627                                {
10628                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10629                                    std::string ex(str, iter.base());
10630                                    assert(ex == "+***1_234_567_89_0;125000");
10631                                    assert(ios.width() == 0);
10632                                }
10633                            }
10634                        }
10635                        showpoint(ios);
10636                        {
10637                            ios.imbue(lc);
10638                            {
10639                                ios.width(0);
10640                                {
10641                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10642                                    std::string ex(str, iter.base());
10643                                    assert(ex == "+1234567890.125000");
10644                                    assert(ios.width() == 0);
10645                                }
10646                                ios.width(25);
10647                                left(ios);
10648                                {
10649                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10650                                    std::string ex(str, iter.base());
10651                                    assert(ex == "+1234567890.125000*******");
10652                                    assert(ios.width() == 0);
10653                                }
10654                                ios.width(25);
10655                                right(ios);
10656                                {
10657                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10658                                    std::string ex(str, iter.base());
10659                                    assert(ex == "*******+1234567890.125000");
10660                                    assert(ios.width() == 0);
10661                                }
10662                                ios.width(25);
10663                                internal(ios);
10664                                {
10665                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10666                                    std::string ex(str, iter.base());
10667                                    assert(ex == "+*******1234567890.125000");
10668                                    assert(ios.width() == 0);
10669                                }
10670                            }
10671                            ios.imbue(lg);
10672                            {
10673                                ios.width(0);
10674                                {
10675                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10676                                    std::string ex(str, iter.base());
10677                                    assert(ex == "+1_234_567_89_0;125000");
10678                                    assert(ios.width() == 0);
10679                                }
10680                                ios.width(25);
10681                                left(ios);
10682                                {
10683                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10684                                    std::string ex(str, iter.base());
10685                                    assert(ex == "+1_234_567_89_0;125000***");
10686                                    assert(ios.width() == 0);
10687                                }
10688                                ios.width(25);
10689                                right(ios);
10690                                {
10691                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10692                                    std::string ex(str, iter.base());
10693                                    assert(ex == "***+1_234_567_89_0;125000");
10694                                    assert(ios.width() == 0);
10695                                }
10696                                ios.width(25);
10697                                internal(ios);
10698                                {
10699                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10700                                    std::string ex(str, iter.base());
10701                                    assert(ex == "+***1_234_567_89_0;125000");
10702                                    assert(ios.width() == 0);
10703                                }
10704                            }
10705                        }
10706                    }
10707                }
10708            }
10709            ios.precision(16);
10710            {}
10711            ios.precision(60);
10712            {}
10713        }
10714    }
10715}
10716
10717void test5()
10718{
10719    char str[200];
10720    output_iterator<char*> iter;
10721    std::locale lc = std::locale::classic();
10722    std::locale lg(lc, new my_numpunct);
10723    const my_facet f(1);
10724    {
10725        double v = -0.;
10726        std::ios ios(0);
10727        scientific(ios);
10728        // %e
10729        {
10730            ios.precision(0);
10731            {
10732                nouppercase(ios);
10733                {
10734                    noshowpos(ios);
10735                    {
10736                        noshowpoint(ios);
10737                        {
10738                            ios.imbue(lc);
10739                            {
10740                                ios.width(0);
10741                                {
10742                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10743                                    std::string ex(str, iter.base());
10744                                    assert(ex == "-0e+00");
10745                                    assert(ios.width() == 0);
10746                                }
10747                                ios.width(25);
10748                                left(ios);
10749                                {
10750                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10751                                    std::string ex(str, iter.base());
10752                                    assert(ex == "-0e+00*******************");
10753                                    assert(ios.width() == 0);
10754                                }
10755                                ios.width(25);
10756                                right(ios);
10757                                {
10758                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10759                                    std::string ex(str, iter.base());
10760                                    assert(ex == "*******************-0e+00");
10761                                    assert(ios.width() == 0);
10762                                }
10763                                ios.width(25);
10764                                internal(ios);
10765                                {
10766                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10767                                    std::string ex(str, iter.base());
10768                                    assert(ex == "-*******************0e+00");
10769                                    assert(ios.width() == 0);
10770                                }
10771                            }
10772                            ios.imbue(lg);
10773                            {
10774                                ios.width(0);
10775                                {
10776                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10777                                    std::string ex(str, iter.base());
10778                                    assert(ex == "-0e+00");
10779                                    assert(ios.width() == 0);
10780                                }
10781                                ios.width(25);
10782                                left(ios);
10783                                {
10784                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10785                                    std::string ex(str, iter.base());
10786                                    assert(ex == "-0e+00*******************");
10787                                    assert(ios.width() == 0);
10788                                }
10789                                ios.width(25);
10790                                right(ios);
10791                                {
10792                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10793                                    std::string ex(str, iter.base());
10794                                    assert(ex == "*******************-0e+00");
10795                                    assert(ios.width() == 0);
10796                                }
10797                                ios.width(25);
10798                                internal(ios);
10799                                {
10800                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10801                                    std::string ex(str, iter.base());
10802                                    assert(ex == "-*******************0e+00");
10803                                    assert(ios.width() == 0);
10804                                }
10805                            }
10806                        }
10807                        showpoint(ios);
10808                        {
10809                            ios.imbue(lc);
10810                            {
10811                                ios.width(0);
10812                                {
10813                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10814                                    std::string ex(str, iter.base());
10815                                    assert(ex == "-0.e+00");
10816                                    assert(ios.width() == 0);
10817                                }
10818                                ios.width(25);
10819                                left(ios);
10820                                {
10821                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10822                                    std::string ex(str, iter.base());
10823                                    assert(ex == "-0.e+00******************");
10824                                    assert(ios.width() == 0);
10825                                }
10826                                ios.width(25);
10827                                right(ios);
10828                                {
10829                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10830                                    std::string ex(str, iter.base());
10831                                    assert(ex == "******************-0.e+00");
10832                                    assert(ios.width() == 0);
10833                                }
10834                                ios.width(25);
10835                                internal(ios);
10836                                {
10837                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10838                                    std::string ex(str, iter.base());
10839                                    assert(ex == "-******************0.e+00");
10840                                    assert(ios.width() == 0);
10841                                }
10842                            }
10843                            ios.imbue(lg);
10844                            {
10845                                ios.width(0);
10846                                {
10847                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10848                                    std::string ex(str, iter.base());
10849                                    assert(ex == "-0;e+00");
10850                                    assert(ios.width() == 0);
10851                                }
10852                                ios.width(25);
10853                                left(ios);
10854                                {
10855                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10856                                    std::string ex(str, iter.base());
10857                                    assert(ex == "-0;e+00******************");
10858                                    assert(ios.width() == 0);
10859                                }
10860                                ios.width(25);
10861                                right(ios);
10862                                {
10863                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10864                                    std::string ex(str, iter.base());
10865                                    assert(ex == "******************-0;e+00");
10866                                    assert(ios.width() == 0);
10867                                }
10868                                ios.width(25);
10869                                internal(ios);
10870                                {
10871                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10872                                    std::string ex(str, iter.base());
10873                                    assert(ex == "-******************0;e+00");
10874                                    assert(ios.width() == 0);
10875                                }
10876                            }
10877                        }
10878                    }
10879                    showpos(ios);
10880                    {
10881                        noshowpoint(ios);
10882                        {
10883                            ios.imbue(lc);
10884                            {
10885                                ios.width(0);
10886                                {
10887                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10888                                    std::string ex(str, iter.base());
10889                                    assert(ex == "-0e+00");
10890                                    assert(ios.width() == 0);
10891                                }
10892                                ios.width(25);
10893                                left(ios);
10894                                {
10895                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10896                                    std::string ex(str, iter.base());
10897                                    assert(ex == "-0e+00*******************");
10898                                    assert(ios.width() == 0);
10899                                }
10900                                ios.width(25);
10901                                right(ios);
10902                                {
10903                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10904                                    std::string ex(str, iter.base());
10905                                    assert(ex == "*******************-0e+00");
10906                                    assert(ios.width() == 0);
10907                                }
10908                                ios.width(25);
10909                                internal(ios);
10910                                {
10911                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10912                                    std::string ex(str, iter.base());
10913                                    assert(ex == "-*******************0e+00");
10914                                    assert(ios.width() == 0);
10915                                }
10916                            }
10917                            ios.imbue(lg);
10918                            {
10919                                ios.width(0);
10920                                {
10921                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10922                                    std::string ex(str, iter.base());
10923                                    assert(ex == "-0e+00");
10924                                    assert(ios.width() == 0);
10925                                }
10926                                ios.width(25);
10927                                left(ios);
10928                                {
10929                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10930                                    std::string ex(str, iter.base());
10931                                    assert(ex == "-0e+00*******************");
10932                                    assert(ios.width() == 0);
10933                                }
10934                                ios.width(25);
10935                                right(ios);
10936                                {
10937                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10938                                    std::string ex(str, iter.base());
10939                                    assert(ex == "*******************-0e+00");
10940                                    assert(ios.width() == 0);
10941                                }
10942                                ios.width(25);
10943                                internal(ios);
10944                                {
10945                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10946                                    std::string ex(str, iter.base());
10947                                    assert(ex == "-*******************0e+00");
10948                                    assert(ios.width() == 0);
10949                                }
10950                            }
10951                        }
10952                        showpoint(ios);
10953                        {
10954                            ios.imbue(lc);
10955                            {
10956                                ios.width(0);
10957                                {
10958                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10959                                    std::string ex(str, iter.base());
10960                                    assert(ex == "-0.e+00");
10961                                    assert(ios.width() == 0);
10962                                }
10963                                ios.width(25);
10964                                left(ios);
10965                                {
10966                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10967                                    std::string ex(str, iter.base());
10968                                    assert(ex == "-0.e+00******************");
10969                                    assert(ios.width() == 0);
10970                                }
10971                                ios.width(25);
10972                                right(ios);
10973                                {
10974                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10975                                    std::string ex(str, iter.base());
10976                                    assert(ex == "******************-0.e+00");
10977                                    assert(ios.width() == 0);
10978                                }
10979                                ios.width(25);
10980                                internal(ios);
10981                                {
10982                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10983                                    std::string ex(str, iter.base());
10984                                    assert(ex == "-******************0.e+00");
10985                                    assert(ios.width() == 0);
10986                                }
10987                            }
10988                            ios.imbue(lg);
10989                            {
10990                                ios.width(0);
10991                                {
10992                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
10993                                    std::string ex(str, iter.base());
10994                                    assert(ex == "-0;e+00");
10995                                    assert(ios.width() == 0);
10996                                }
10997                                ios.width(25);
10998                                left(ios);
10999                                {
11000                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11001                                    std::string ex(str, iter.base());
11002                                    assert(ex == "-0;e+00******************");
11003                                    assert(ios.width() == 0);
11004                                }
11005                                ios.width(25);
11006                                right(ios);
11007                                {
11008                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11009                                    std::string ex(str, iter.base());
11010                                    assert(ex == "******************-0;e+00");
11011                                    assert(ios.width() == 0);
11012                                }
11013                                ios.width(25);
11014                                internal(ios);
11015                                {
11016                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11017                                    std::string ex(str, iter.base());
11018                                    assert(ex == "-******************0;e+00");
11019                                    assert(ios.width() == 0);
11020                                }
11021                            }
11022                        }
11023                    }
11024                }
11025                uppercase(ios);
11026                {
11027                    noshowpos(ios);
11028                    {
11029                        noshowpoint(ios);
11030                        {
11031                            ios.imbue(lc);
11032                            {
11033                                ios.width(0);
11034                                {
11035                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11036                                    std::string ex(str, iter.base());
11037                                    assert(ex == "-0E+00");
11038                                    assert(ios.width() == 0);
11039                                }
11040                                ios.width(25);
11041                                left(ios);
11042                                {
11043                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11044                                    std::string ex(str, iter.base());
11045                                    assert(ex == "-0E+00*******************");
11046                                    assert(ios.width() == 0);
11047                                }
11048                                ios.width(25);
11049                                right(ios);
11050                                {
11051                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11052                                    std::string ex(str, iter.base());
11053                                    assert(ex == "*******************-0E+00");
11054                                    assert(ios.width() == 0);
11055                                }
11056                                ios.width(25);
11057                                internal(ios);
11058                                {
11059                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11060                                    std::string ex(str, iter.base());
11061                                    assert(ex == "-*******************0E+00");
11062                                    assert(ios.width() == 0);
11063                                }
11064                            }
11065                            ios.imbue(lg);
11066                            {
11067                                ios.width(0);
11068                                {
11069                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11070                                    std::string ex(str, iter.base());
11071                                    assert(ex == "-0E+00");
11072                                    assert(ios.width() == 0);
11073                                }
11074                                ios.width(25);
11075                                left(ios);
11076                                {
11077                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11078                                    std::string ex(str, iter.base());
11079                                    assert(ex == "-0E+00*******************");
11080                                    assert(ios.width() == 0);
11081                                }
11082                                ios.width(25);
11083                                right(ios);
11084                                {
11085                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11086                                    std::string ex(str, iter.base());
11087                                    assert(ex == "*******************-0E+00");
11088                                    assert(ios.width() == 0);
11089                                }
11090                                ios.width(25);
11091                                internal(ios);
11092                                {
11093                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11094                                    std::string ex(str, iter.base());
11095                                    assert(ex == "-*******************0E+00");
11096                                    assert(ios.width() == 0);
11097                                }
11098                            }
11099                        }
11100                        showpoint(ios);
11101                        {
11102                            ios.imbue(lc);
11103                            {
11104                                ios.width(0);
11105                                {
11106                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11107                                    std::string ex(str, iter.base());
11108                                    assert(ex == "-0.E+00");
11109                                    assert(ios.width() == 0);
11110                                }
11111                                ios.width(25);
11112                                left(ios);
11113                                {
11114                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11115                                    std::string ex(str, iter.base());
11116                                    assert(ex == "-0.E+00******************");
11117                                    assert(ios.width() == 0);
11118                                }
11119                                ios.width(25);
11120                                right(ios);
11121                                {
11122                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11123                                    std::string ex(str, iter.base());
11124                                    assert(ex == "******************-0.E+00");
11125                                    assert(ios.width() == 0);
11126                                }
11127                                ios.width(25);
11128                                internal(ios);
11129                                {
11130                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11131                                    std::string ex(str, iter.base());
11132                                    assert(ex == "-******************0.E+00");
11133                                    assert(ios.width() == 0);
11134                                }
11135                            }
11136                            ios.imbue(lg);
11137                            {
11138                                ios.width(0);
11139                                {
11140                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11141                                    std::string ex(str, iter.base());
11142                                    assert(ex == "-0;E+00");
11143                                    assert(ios.width() == 0);
11144                                }
11145                                ios.width(25);
11146                                left(ios);
11147                                {
11148                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11149                                    std::string ex(str, iter.base());
11150                                    assert(ex == "-0;E+00******************");
11151                                    assert(ios.width() == 0);
11152                                }
11153                                ios.width(25);
11154                                right(ios);
11155                                {
11156                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11157                                    std::string ex(str, iter.base());
11158                                    assert(ex == "******************-0;E+00");
11159                                    assert(ios.width() == 0);
11160                                }
11161                                ios.width(25);
11162                                internal(ios);
11163                                {
11164                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11165                                    std::string ex(str, iter.base());
11166                                    assert(ex == "-******************0;E+00");
11167                                    assert(ios.width() == 0);
11168                                }
11169                            }
11170                        }
11171                    }
11172                    showpos(ios);
11173                    {
11174                        noshowpoint(ios);
11175                        {
11176                            ios.imbue(lc);
11177                            {
11178                                ios.width(0);
11179                                {
11180                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11181                                    std::string ex(str, iter.base());
11182                                    assert(ex == "-0E+00");
11183                                    assert(ios.width() == 0);
11184                                }
11185                                ios.width(25);
11186                                left(ios);
11187                                {
11188                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11189                                    std::string ex(str, iter.base());
11190                                    assert(ex == "-0E+00*******************");
11191                                    assert(ios.width() == 0);
11192                                }
11193                                ios.width(25);
11194                                right(ios);
11195                                {
11196                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11197                                    std::string ex(str, iter.base());
11198                                    assert(ex == "*******************-0E+00");
11199                                    assert(ios.width() == 0);
11200                                }
11201                                ios.width(25);
11202                                internal(ios);
11203                                {
11204                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11205                                    std::string ex(str, iter.base());
11206                                    assert(ex == "-*******************0E+00");
11207                                    assert(ios.width() == 0);
11208                                }
11209                            }
11210                            ios.imbue(lg);
11211                            {
11212                                ios.width(0);
11213                                {
11214                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11215                                    std::string ex(str, iter.base());
11216                                    assert(ex == "-0E+00");
11217                                    assert(ios.width() == 0);
11218                                }
11219                                ios.width(25);
11220                                left(ios);
11221                                {
11222                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11223                                    std::string ex(str, iter.base());
11224                                    assert(ex == "-0E+00*******************");
11225                                    assert(ios.width() == 0);
11226                                }
11227                                ios.width(25);
11228                                right(ios);
11229                                {
11230                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11231                                    std::string ex(str, iter.base());
11232                                    assert(ex == "*******************-0E+00");
11233                                    assert(ios.width() == 0);
11234                                }
11235                                ios.width(25);
11236                                internal(ios);
11237                                {
11238                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11239                                    std::string ex(str, iter.base());
11240                                    assert(ex == "-*******************0E+00");
11241                                    assert(ios.width() == 0);
11242                                }
11243                            }
11244                        }
11245                        showpoint(ios);
11246                        {
11247                            ios.imbue(lc);
11248                            {
11249                                ios.width(0);
11250                                {
11251                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11252                                    std::string ex(str, iter.base());
11253                                    assert(ex == "-0.E+00");
11254                                    assert(ios.width() == 0);
11255                                }
11256                                ios.width(25);
11257                                left(ios);
11258                                {
11259                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11260                                    std::string ex(str, iter.base());
11261                                    assert(ex == "-0.E+00******************");
11262                                    assert(ios.width() == 0);
11263                                }
11264                                ios.width(25);
11265                                right(ios);
11266                                {
11267                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11268                                    std::string ex(str, iter.base());
11269                                    assert(ex == "******************-0.E+00");
11270                                    assert(ios.width() == 0);
11271                                }
11272                                ios.width(25);
11273                                internal(ios);
11274                                {
11275                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11276                                    std::string ex(str, iter.base());
11277                                    assert(ex == "-******************0.E+00");
11278                                    assert(ios.width() == 0);
11279                                }
11280                            }
11281                            ios.imbue(lg);
11282                            {
11283                                ios.width(0);
11284                                {
11285                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11286                                    std::string ex(str, iter.base());
11287                                    assert(ex == "-0;E+00");
11288                                    assert(ios.width() == 0);
11289                                }
11290                                ios.width(25);
11291                                left(ios);
11292                                {
11293                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11294                                    std::string ex(str, iter.base());
11295                                    assert(ex == "-0;E+00******************");
11296                                    assert(ios.width() == 0);
11297                                }
11298                                ios.width(25);
11299                                right(ios);
11300                                {
11301                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11302                                    std::string ex(str, iter.base());
11303                                    assert(ex == "******************-0;E+00");
11304                                    assert(ios.width() == 0);
11305                                }
11306                                ios.width(25);
11307                                internal(ios);
11308                                {
11309                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11310                                    std::string ex(str, iter.base());
11311                                    assert(ex == "-******************0;E+00");
11312                                    assert(ios.width() == 0);
11313                                }
11314                            }
11315                        }
11316                    }
11317                }
11318            }
11319            ios.precision(1);
11320            {
11321                nouppercase(ios);
11322                {
11323                    noshowpos(ios);
11324                    {
11325                        noshowpoint(ios);
11326                        {
11327                            ios.imbue(lc);
11328                            {
11329                                ios.width(0);
11330                                {
11331                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11332                                    std::string ex(str, iter.base());
11333                                    assert(ex == "-0.0e+00");
11334                                    assert(ios.width() == 0);
11335                                }
11336                                ios.width(25);
11337                                left(ios);
11338                                {
11339                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11340                                    std::string ex(str, iter.base());
11341                                    assert(ex == "-0.0e+00*****************");
11342                                    assert(ios.width() == 0);
11343                                }
11344                                ios.width(25);
11345                                right(ios);
11346                                {
11347                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11348                                    std::string ex(str, iter.base());
11349                                    assert(ex == "*****************-0.0e+00");
11350                                    assert(ios.width() == 0);
11351                                }
11352                                ios.width(25);
11353                                internal(ios);
11354                                {
11355                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11356                                    std::string ex(str, iter.base());
11357                                    assert(ex == "-*****************0.0e+00");
11358                                    assert(ios.width() == 0);
11359                                }
11360                            }
11361                            ios.imbue(lg);
11362                            {
11363                                ios.width(0);
11364                                {
11365                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11366                                    std::string ex(str, iter.base());
11367                                    assert(ex == "-0;0e+00");
11368                                    assert(ios.width() == 0);
11369                                }
11370                                ios.width(25);
11371                                left(ios);
11372                                {
11373                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11374                                    std::string ex(str, iter.base());
11375                                    assert(ex == "-0;0e+00*****************");
11376                                    assert(ios.width() == 0);
11377                                }
11378                                ios.width(25);
11379                                right(ios);
11380                                {
11381                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11382                                    std::string ex(str, iter.base());
11383                                    assert(ex == "*****************-0;0e+00");
11384                                    assert(ios.width() == 0);
11385                                }
11386                                ios.width(25);
11387                                internal(ios);
11388                                {
11389                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11390                                    std::string ex(str, iter.base());
11391                                    assert(ex == "-*****************0;0e+00");
11392                                    assert(ios.width() == 0);
11393                                }
11394                            }
11395                        }
11396                        showpoint(ios);
11397                        {
11398                            ios.imbue(lc);
11399                            {
11400                                ios.width(0);
11401                                {
11402                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11403                                    std::string ex(str, iter.base());
11404                                    assert(ex == "-0.0e+00");
11405                                    assert(ios.width() == 0);
11406                                }
11407                                ios.width(25);
11408                                left(ios);
11409                                {
11410                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11411                                    std::string ex(str, iter.base());
11412                                    assert(ex == "-0.0e+00*****************");
11413                                    assert(ios.width() == 0);
11414                                }
11415                                ios.width(25);
11416                                right(ios);
11417                                {
11418                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11419                                    std::string ex(str, iter.base());
11420                                    assert(ex == "*****************-0.0e+00");
11421                                    assert(ios.width() == 0);
11422                                }
11423                                ios.width(25);
11424                                internal(ios);
11425                                {
11426                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11427                                    std::string ex(str, iter.base());
11428                                    assert(ex == "-*****************0.0e+00");
11429                                    assert(ios.width() == 0);
11430                                }
11431                            }
11432                            ios.imbue(lg);
11433                            {
11434                                ios.width(0);
11435                                {
11436                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11437                                    std::string ex(str, iter.base());
11438                                    assert(ex == "-0;0e+00");
11439                                    assert(ios.width() == 0);
11440                                }
11441                                ios.width(25);
11442                                left(ios);
11443                                {
11444                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11445                                    std::string ex(str, iter.base());
11446                                    assert(ex == "-0;0e+00*****************");
11447                                    assert(ios.width() == 0);
11448                                }
11449                                ios.width(25);
11450                                right(ios);
11451                                {
11452                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11453                                    std::string ex(str, iter.base());
11454                                    assert(ex == "*****************-0;0e+00");
11455                                    assert(ios.width() == 0);
11456                                }
11457                                ios.width(25);
11458                                internal(ios);
11459                                {
11460                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11461                                    std::string ex(str, iter.base());
11462                                    assert(ex == "-*****************0;0e+00");
11463                                    assert(ios.width() == 0);
11464                                }
11465                            }
11466                        }
11467                    }
11468                    showpos(ios);
11469                    {
11470                        noshowpoint(ios);
11471                        {
11472                            ios.imbue(lc);
11473                            {
11474                                ios.width(0);
11475                                {
11476                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11477                                    std::string ex(str, iter.base());
11478                                    assert(ex == "-0.0e+00");
11479                                    assert(ios.width() == 0);
11480                                }
11481                                ios.width(25);
11482                                left(ios);
11483                                {
11484                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11485                                    std::string ex(str, iter.base());
11486                                    assert(ex == "-0.0e+00*****************");
11487                                    assert(ios.width() == 0);
11488                                }
11489                                ios.width(25);
11490                                right(ios);
11491                                {
11492                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11493                                    std::string ex(str, iter.base());
11494                                    assert(ex == "*****************-0.0e+00");
11495                                    assert(ios.width() == 0);
11496                                }
11497                                ios.width(25);
11498                                internal(ios);
11499                                {
11500                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11501                                    std::string ex(str, iter.base());
11502                                    assert(ex == "-*****************0.0e+00");
11503                                    assert(ios.width() == 0);
11504                                }
11505                            }
11506                            ios.imbue(lg);
11507                            {
11508                                ios.width(0);
11509                                {
11510                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11511                                    std::string ex(str, iter.base());
11512                                    assert(ex == "-0;0e+00");
11513                                    assert(ios.width() == 0);
11514                                }
11515                                ios.width(25);
11516                                left(ios);
11517                                {
11518                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11519                                    std::string ex(str, iter.base());
11520                                    assert(ex == "-0;0e+00*****************");
11521                                    assert(ios.width() == 0);
11522                                }
11523                                ios.width(25);
11524                                right(ios);
11525                                {
11526                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11527                                    std::string ex(str, iter.base());
11528                                    assert(ex == "*****************-0;0e+00");
11529                                    assert(ios.width() == 0);
11530                                }
11531                                ios.width(25);
11532                                internal(ios);
11533                                {
11534                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11535                                    std::string ex(str, iter.base());
11536                                    assert(ex == "-*****************0;0e+00");
11537                                    assert(ios.width() == 0);
11538                                }
11539                            }
11540                        }
11541                        showpoint(ios);
11542                        {
11543                            ios.imbue(lc);
11544                            {
11545                                ios.width(0);
11546                                {
11547                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11548                                    std::string ex(str, iter.base());
11549                                    assert(ex == "-0.0e+00");
11550                                    assert(ios.width() == 0);
11551                                }
11552                                ios.width(25);
11553                                left(ios);
11554                                {
11555                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11556                                    std::string ex(str, iter.base());
11557                                    assert(ex == "-0.0e+00*****************");
11558                                    assert(ios.width() == 0);
11559                                }
11560                                ios.width(25);
11561                                right(ios);
11562                                {
11563                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11564                                    std::string ex(str, iter.base());
11565                                    assert(ex == "*****************-0.0e+00");
11566                                    assert(ios.width() == 0);
11567                                }
11568                                ios.width(25);
11569                                internal(ios);
11570                                {
11571                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11572                                    std::string ex(str, iter.base());
11573                                    assert(ex == "-*****************0.0e+00");
11574                                    assert(ios.width() == 0);
11575                                }
11576                            }
11577                            ios.imbue(lg);
11578                            {
11579                                ios.width(0);
11580                                {
11581                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11582                                    std::string ex(str, iter.base());
11583                                    assert(ex == "-0;0e+00");
11584                                    assert(ios.width() == 0);
11585                                }
11586                                ios.width(25);
11587                                left(ios);
11588                                {
11589                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11590                                    std::string ex(str, iter.base());
11591                                    assert(ex == "-0;0e+00*****************");
11592                                    assert(ios.width() == 0);
11593                                }
11594                                ios.width(25);
11595                                right(ios);
11596                                {
11597                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11598                                    std::string ex(str, iter.base());
11599                                    assert(ex == "*****************-0;0e+00");
11600                                    assert(ios.width() == 0);
11601                                }
11602                                ios.width(25);
11603                                internal(ios);
11604                                {
11605                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11606                                    std::string ex(str, iter.base());
11607                                    assert(ex == "-*****************0;0e+00");
11608                                    assert(ios.width() == 0);
11609                                }
11610                            }
11611                        }
11612                    }
11613                }
11614                uppercase(ios);
11615                {
11616                    noshowpos(ios);
11617                    {
11618                        noshowpoint(ios);
11619                        {
11620                            ios.imbue(lc);
11621                            {
11622                                ios.width(0);
11623                                {
11624                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11625                                    std::string ex(str, iter.base());
11626                                    assert(ex == "-0.0E+00");
11627                                    assert(ios.width() == 0);
11628                                }
11629                                ios.width(25);
11630                                left(ios);
11631                                {
11632                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11633                                    std::string ex(str, iter.base());
11634                                    assert(ex == "-0.0E+00*****************");
11635                                    assert(ios.width() == 0);
11636                                }
11637                                ios.width(25);
11638                                right(ios);
11639                                {
11640                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11641                                    std::string ex(str, iter.base());
11642                                    assert(ex == "*****************-0.0E+00");
11643                                    assert(ios.width() == 0);
11644                                }
11645                                ios.width(25);
11646                                internal(ios);
11647                                {
11648                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11649                                    std::string ex(str, iter.base());
11650                                    assert(ex == "-*****************0.0E+00");
11651                                    assert(ios.width() == 0);
11652                                }
11653                            }
11654                            ios.imbue(lg);
11655                            {
11656                                ios.width(0);
11657                                {
11658                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11659                                    std::string ex(str, iter.base());
11660                                    assert(ex == "-0;0E+00");
11661                                    assert(ios.width() == 0);
11662                                }
11663                                ios.width(25);
11664                                left(ios);
11665                                {
11666                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11667                                    std::string ex(str, iter.base());
11668                                    assert(ex == "-0;0E+00*****************");
11669                                    assert(ios.width() == 0);
11670                                }
11671                                ios.width(25);
11672                                right(ios);
11673                                {
11674                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11675                                    std::string ex(str, iter.base());
11676                                    assert(ex == "*****************-0;0E+00");
11677                                    assert(ios.width() == 0);
11678                                }
11679                                ios.width(25);
11680                                internal(ios);
11681                                {
11682                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11683                                    std::string ex(str, iter.base());
11684                                    assert(ex == "-*****************0;0E+00");
11685                                    assert(ios.width() == 0);
11686                                }
11687                            }
11688                        }
11689                        showpoint(ios);
11690                        {
11691                            ios.imbue(lc);
11692                            {
11693                                ios.width(0);
11694                                {
11695                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11696                                    std::string ex(str, iter.base());
11697                                    assert(ex == "-0.0E+00");
11698                                    assert(ios.width() == 0);
11699                                }
11700                                ios.width(25);
11701                                left(ios);
11702                                {
11703                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11704                                    std::string ex(str, iter.base());
11705                                    assert(ex == "-0.0E+00*****************");
11706                                    assert(ios.width() == 0);
11707                                }
11708                                ios.width(25);
11709                                right(ios);
11710                                {
11711                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11712                                    std::string ex(str, iter.base());
11713                                    assert(ex == "*****************-0.0E+00");
11714                                    assert(ios.width() == 0);
11715                                }
11716                                ios.width(25);
11717                                internal(ios);
11718                                {
11719                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11720                                    std::string ex(str, iter.base());
11721                                    assert(ex == "-*****************0.0E+00");
11722                                    assert(ios.width() == 0);
11723                                }
11724                            }
11725                            ios.imbue(lg);
11726                            {
11727                                ios.width(0);
11728                                {
11729                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11730                                    std::string ex(str, iter.base());
11731                                    assert(ex == "-0;0E+00");
11732                                    assert(ios.width() == 0);
11733                                }
11734                                ios.width(25);
11735                                left(ios);
11736                                {
11737                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11738                                    std::string ex(str, iter.base());
11739                                    assert(ex == "-0;0E+00*****************");
11740                                    assert(ios.width() == 0);
11741                                }
11742                                ios.width(25);
11743                                right(ios);
11744                                {
11745                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11746                                    std::string ex(str, iter.base());
11747                                    assert(ex == "*****************-0;0E+00");
11748                                    assert(ios.width() == 0);
11749                                }
11750                                ios.width(25);
11751                                internal(ios);
11752                                {
11753                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11754                                    std::string ex(str, iter.base());
11755                                    assert(ex == "-*****************0;0E+00");
11756                                    assert(ios.width() == 0);
11757                                }
11758                            }
11759                        }
11760                    }
11761                    showpos(ios);
11762                    {
11763                        noshowpoint(ios);
11764                        {
11765                            ios.imbue(lc);
11766                            {
11767                                ios.width(0);
11768                                {
11769                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11770                                    std::string ex(str, iter.base());
11771                                    assert(ex == "-0.0E+00");
11772                                    assert(ios.width() == 0);
11773                                }
11774                                ios.width(25);
11775                                left(ios);
11776                                {
11777                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11778                                    std::string ex(str, iter.base());
11779                                    assert(ex == "-0.0E+00*****************");
11780                                    assert(ios.width() == 0);
11781                                }
11782                                ios.width(25);
11783                                right(ios);
11784                                {
11785                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11786                                    std::string ex(str, iter.base());
11787                                    assert(ex == "*****************-0.0E+00");
11788                                    assert(ios.width() == 0);
11789                                }
11790                                ios.width(25);
11791                                internal(ios);
11792                                {
11793                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11794                                    std::string ex(str, iter.base());
11795                                    assert(ex == "-*****************0.0E+00");
11796                                    assert(ios.width() == 0);
11797                                }
11798                            }
11799                            ios.imbue(lg);
11800                            {
11801                                ios.width(0);
11802                                {
11803                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11804                                    std::string ex(str, iter.base());
11805                                    assert(ex == "-0;0E+00");
11806                                    assert(ios.width() == 0);
11807                                }
11808                                ios.width(25);
11809                                left(ios);
11810                                {
11811                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11812                                    std::string ex(str, iter.base());
11813                                    assert(ex == "-0;0E+00*****************");
11814                                    assert(ios.width() == 0);
11815                                }
11816                                ios.width(25);
11817                                right(ios);
11818                                {
11819                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11820                                    std::string ex(str, iter.base());
11821                                    assert(ex == "*****************-0;0E+00");
11822                                    assert(ios.width() == 0);
11823                                }
11824                                ios.width(25);
11825                                internal(ios);
11826                                {
11827                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11828                                    std::string ex(str, iter.base());
11829                                    assert(ex == "-*****************0;0E+00");
11830                                    assert(ios.width() == 0);
11831                                }
11832                            }
11833                        }
11834                        showpoint(ios);
11835                        {
11836                            ios.imbue(lc);
11837                            {
11838                                ios.width(0);
11839                                {
11840                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11841                                    std::string ex(str, iter.base());
11842                                    assert(ex == "-0.0E+00");
11843                                    assert(ios.width() == 0);
11844                                }
11845                                ios.width(25);
11846                                left(ios);
11847                                {
11848                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11849                                    std::string ex(str, iter.base());
11850                                    assert(ex == "-0.0E+00*****************");
11851                                    assert(ios.width() == 0);
11852                                }
11853                                ios.width(25);
11854                                right(ios);
11855                                {
11856                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11857                                    std::string ex(str, iter.base());
11858                                    assert(ex == "*****************-0.0E+00");
11859                                    assert(ios.width() == 0);
11860                                }
11861                                ios.width(25);
11862                                internal(ios);
11863                                {
11864                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11865                                    std::string ex(str, iter.base());
11866                                    assert(ex == "-*****************0.0E+00");
11867                                    assert(ios.width() == 0);
11868                                }
11869                            }
11870                            ios.imbue(lg);
11871                            {
11872                                ios.width(0);
11873                                {
11874                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11875                                    std::string ex(str, iter.base());
11876                                    assert(ex == "-0;0E+00");
11877                                    assert(ios.width() == 0);
11878                                }
11879                                ios.width(25);
11880                                left(ios);
11881                                {
11882                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11883                                    std::string ex(str, iter.base());
11884                                    assert(ex == "-0;0E+00*****************");
11885                                    assert(ios.width() == 0);
11886                                }
11887                                ios.width(25);
11888                                right(ios);
11889                                {
11890                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11891                                    std::string ex(str, iter.base());
11892                                    assert(ex == "*****************-0;0E+00");
11893                                    assert(ios.width() == 0);
11894                                }
11895                                ios.width(25);
11896                                internal(ios);
11897                                {
11898                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11899                                    std::string ex(str, iter.base());
11900                                    assert(ex == "-*****************0;0E+00");
11901                                    assert(ios.width() == 0);
11902                                }
11903                            }
11904                        }
11905                    }
11906                }
11907            }
11908            ios.precision(6);
11909            {
11910                nouppercase(ios);
11911                {
11912                    noshowpos(ios);
11913                    {
11914                        noshowpoint(ios);
11915                        {
11916                            ios.imbue(lc);
11917                            {
11918                                ios.width(0);
11919                                {
11920                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11921                                    std::string ex(str, iter.base());
11922                                    assert(ex == "-0.000000e+00");
11923                                    assert(ios.width() == 0);
11924                                }
11925                                ios.width(25);
11926                                left(ios);
11927                                {
11928                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11929                                    std::string ex(str, iter.base());
11930                                    assert(ex == "-0.000000e+00************");
11931                                    assert(ios.width() == 0);
11932                                }
11933                                ios.width(25);
11934                                right(ios);
11935                                {
11936                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11937                                    std::string ex(str, iter.base());
11938                                    assert(ex == "************-0.000000e+00");
11939                                    assert(ios.width() == 0);
11940                                }
11941                                ios.width(25);
11942                                internal(ios);
11943                                {
11944                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11945                                    std::string ex(str, iter.base());
11946                                    assert(ex == "-************0.000000e+00");
11947                                    assert(ios.width() == 0);
11948                                }
11949                            }
11950                            ios.imbue(lg);
11951                            {
11952                                ios.width(0);
11953                                {
11954                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11955                                    std::string ex(str, iter.base());
11956                                    assert(ex == "-0;000000e+00");
11957                                    assert(ios.width() == 0);
11958                                }
11959                                ios.width(25);
11960                                left(ios);
11961                                {
11962                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11963                                    std::string ex(str, iter.base());
11964                                    assert(ex == "-0;000000e+00************");
11965                                    assert(ios.width() == 0);
11966                                }
11967                                ios.width(25);
11968                                right(ios);
11969                                {
11970                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11971                                    std::string ex(str, iter.base());
11972                                    assert(ex == "************-0;000000e+00");
11973                                    assert(ios.width() == 0);
11974                                }
11975                                ios.width(25);
11976                                internal(ios);
11977                                {
11978                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11979                                    std::string ex(str, iter.base());
11980                                    assert(ex == "-************0;000000e+00");
11981                                    assert(ios.width() == 0);
11982                                }
11983                            }
11984                        }
11985                        showpoint(ios);
11986                        {
11987                            ios.imbue(lc);
11988                            {
11989                                ios.width(0);
11990                                {
11991                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
11992                                    std::string ex(str, iter.base());
11993                                    assert(ex == "-0.000000e+00");
11994                                    assert(ios.width() == 0);
11995                                }
11996                                ios.width(25);
11997                                left(ios);
11998                                {
11999                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12000                                    std::string ex(str, iter.base());
12001                                    assert(ex == "-0.000000e+00************");
12002                                    assert(ios.width() == 0);
12003                                }
12004                                ios.width(25);
12005                                right(ios);
12006                                {
12007                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12008                                    std::string ex(str, iter.base());
12009                                    assert(ex == "************-0.000000e+00");
12010                                    assert(ios.width() == 0);
12011                                }
12012                                ios.width(25);
12013                                internal(ios);
12014                                {
12015                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12016                                    std::string ex(str, iter.base());
12017                                    assert(ex == "-************0.000000e+00");
12018                                    assert(ios.width() == 0);
12019                                }
12020                            }
12021                            ios.imbue(lg);
12022                            {
12023                                ios.width(0);
12024                                {
12025                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12026                                    std::string ex(str, iter.base());
12027                                    assert(ex == "-0;000000e+00");
12028                                    assert(ios.width() == 0);
12029                                }
12030                                ios.width(25);
12031                                left(ios);
12032                                {
12033                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12034                                    std::string ex(str, iter.base());
12035                                    assert(ex == "-0;000000e+00************");
12036                                    assert(ios.width() == 0);
12037                                }
12038                                ios.width(25);
12039                                right(ios);
12040                                {
12041                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12042                                    std::string ex(str, iter.base());
12043                                    assert(ex == "************-0;000000e+00");
12044                                    assert(ios.width() == 0);
12045                                }
12046                                ios.width(25);
12047                                internal(ios);
12048                                {
12049                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12050                                    std::string ex(str, iter.base());
12051                                    assert(ex == "-************0;000000e+00");
12052                                    assert(ios.width() == 0);
12053                                }
12054                            }
12055                        }
12056                    }
12057                    showpos(ios);
12058                    {
12059                        noshowpoint(ios);
12060                        {
12061                            ios.imbue(lc);
12062                            {
12063                                ios.width(0);
12064                                {
12065                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12066                                    std::string ex(str, iter.base());
12067                                    assert(ex == "-0.000000e+00");
12068                                    assert(ios.width() == 0);
12069                                }
12070                                ios.width(25);
12071                                left(ios);
12072                                {
12073                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12074                                    std::string ex(str, iter.base());
12075                                    assert(ex == "-0.000000e+00************");
12076                                    assert(ios.width() == 0);
12077                                }
12078                                ios.width(25);
12079                                right(ios);
12080                                {
12081                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12082                                    std::string ex(str, iter.base());
12083                                    assert(ex == "************-0.000000e+00");
12084                                    assert(ios.width() == 0);
12085                                }
12086                                ios.width(25);
12087                                internal(ios);
12088                                {
12089                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12090                                    std::string ex(str, iter.base());
12091                                    assert(ex == "-************0.000000e+00");
12092                                    assert(ios.width() == 0);
12093                                }
12094                            }
12095                            ios.imbue(lg);
12096                            {
12097                                ios.width(0);
12098                                {
12099                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12100                                    std::string ex(str, iter.base());
12101                                    assert(ex == "-0;000000e+00");
12102                                    assert(ios.width() == 0);
12103                                }
12104                                ios.width(25);
12105                                left(ios);
12106                                {
12107                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12108                                    std::string ex(str, iter.base());
12109                                    assert(ex == "-0;000000e+00************");
12110                                    assert(ios.width() == 0);
12111                                }
12112                                ios.width(25);
12113                                right(ios);
12114                                {
12115                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12116                                    std::string ex(str, iter.base());
12117                                    assert(ex == "************-0;000000e+00");
12118                                    assert(ios.width() == 0);
12119                                }
12120                                ios.width(25);
12121                                internal(ios);
12122                                {
12123                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12124                                    std::string ex(str, iter.base());
12125                                    assert(ex == "-************0;000000e+00");
12126                                    assert(ios.width() == 0);
12127                                }
12128                            }
12129                        }
12130                        showpoint(ios);
12131                        {
12132                            ios.imbue(lc);
12133                            {
12134                                ios.width(0);
12135                                {
12136                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12137                                    std::string ex(str, iter.base());
12138                                    assert(ex == "-0.000000e+00");
12139                                    assert(ios.width() == 0);
12140                                }
12141                                ios.width(25);
12142                                left(ios);
12143                                {
12144                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12145                                    std::string ex(str, iter.base());
12146                                    assert(ex == "-0.000000e+00************");
12147                                    assert(ios.width() == 0);
12148                                }
12149                                ios.width(25);
12150                                right(ios);
12151                                {
12152                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12153                                    std::string ex(str, iter.base());
12154                                    assert(ex == "************-0.000000e+00");
12155                                    assert(ios.width() == 0);
12156                                }
12157                                ios.width(25);
12158                                internal(ios);
12159                                {
12160                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12161                                    std::string ex(str, iter.base());
12162                                    assert(ex == "-************0.000000e+00");
12163                                    assert(ios.width() == 0);
12164                                }
12165                            }
12166                            ios.imbue(lg);
12167                            {
12168                                ios.width(0);
12169                                {
12170                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12171                                    std::string ex(str, iter.base());
12172                                    assert(ex == "-0;000000e+00");
12173                                    assert(ios.width() == 0);
12174                                }
12175                                ios.width(25);
12176                                left(ios);
12177                                {
12178                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12179                                    std::string ex(str, iter.base());
12180                                    assert(ex == "-0;000000e+00************");
12181                                    assert(ios.width() == 0);
12182                                }
12183                                ios.width(25);
12184                                right(ios);
12185                                {
12186                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12187                                    std::string ex(str, iter.base());
12188                                    assert(ex == "************-0;000000e+00");
12189                                    assert(ios.width() == 0);
12190                                }
12191                                ios.width(25);
12192                                internal(ios);
12193                                {
12194                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12195                                    std::string ex(str, iter.base());
12196                                    assert(ex == "-************0;000000e+00");
12197                                    assert(ios.width() == 0);
12198                                }
12199                            }
12200                        }
12201                    }
12202                }
12203                uppercase(ios);
12204                {
12205                    noshowpos(ios);
12206                    {
12207                        noshowpoint(ios);
12208                        {
12209                            ios.imbue(lc);
12210                            {
12211                                ios.width(0);
12212                                {
12213                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12214                                    std::string ex(str, iter.base());
12215                                    assert(ex == "-0.000000E+00");
12216                                    assert(ios.width() == 0);
12217                                }
12218                                ios.width(25);
12219                                left(ios);
12220                                {
12221                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12222                                    std::string ex(str, iter.base());
12223                                    assert(ex == "-0.000000E+00************");
12224                                    assert(ios.width() == 0);
12225                                }
12226                                ios.width(25);
12227                                right(ios);
12228                                {
12229                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12230                                    std::string ex(str, iter.base());
12231                                    assert(ex == "************-0.000000E+00");
12232                                    assert(ios.width() == 0);
12233                                }
12234                                ios.width(25);
12235                                internal(ios);
12236                                {
12237                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12238                                    std::string ex(str, iter.base());
12239                                    assert(ex == "-************0.000000E+00");
12240                                    assert(ios.width() == 0);
12241                                }
12242                            }
12243                            ios.imbue(lg);
12244                            {
12245                                ios.width(0);
12246                                {
12247                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12248                                    std::string ex(str, iter.base());
12249                                    assert(ex == "-0;000000E+00");
12250                                    assert(ios.width() == 0);
12251                                }
12252                                ios.width(25);
12253                                left(ios);
12254                                {
12255                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12256                                    std::string ex(str, iter.base());
12257                                    assert(ex == "-0;000000E+00************");
12258                                    assert(ios.width() == 0);
12259                                }
12260                                ios.width(25);
12261                                right(ios);
12262                                {
12263                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12264                                    std::string ex(str, iter.base());
12265                                    assert(ex == "************-0;000000E+00");
12266                                    assert(ios.width() == 0);
12267                                }
12268                                ios.width(25);
12269                                internal(ios);
12270                                {
12271                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12272                                    std::string ex(str, iter.base());
12273                                    assert(ex == "-************0;000000E+00");
12274                                    assert(ios.width() == 0);
12275                                }
12276                            }
12277                        }
12278                        showpoint(ios);
12279                        {
12280                            ios.imbue(lc);
12281                            {
12282                                ios.width(0);
12283                                {
12284                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12285                                    std::string ex(str, iter.base());
12286                                    assert(ex == "-0.000000E+00");
12287                                    assert(ios.width() == 0);
12288                                }
12289                                ios.width(25);
12290                                left(ios);
12291                                {
12292                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12293                                    std::string ex(str, iter.base());
12294                                    assert(ex == "-0.000000E+00************");
12295                                    assert(ios.width() == 0);
12296                                }
12297                                ios.width(25);
12298                                right(ios);
12299                                {
12300                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12301                                    std::string ex(str, iter.base());
12302                                    assert(ex == "************-0.000000E+00");
12303                                    assert(ios.width() == 0);
12304                                }
12305                                ios.width(25);
12306                                internal(ios);
12307                                {
12308                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12309                                    std::string ex(str, iter.base());
12310                                    assert(ex == "-************0.000000E+00");
12311                                    assert(ios.width() == 0);
12312                                }
12313                            }
12314                            ios.imbue(lg);
12315                            {
12316                                ios.width(0);
12317                                {
12318                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12319                                    std::string ex(str, iter.base());
12320                                    assert(ex == "-0;000000E+00");
12321                                    assert(ios.width() == 0);
12322                                }
12323                                ios.width(25);
12324                                left(ios);
12325                                {
12326                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12327                                    std::string ex(str, iter.base());
12328                                    assert(ex == "-0;000000E+00************");
12329                                    assert(ios.width() == 0);
12330                                }
12331                                ios.width(25);
12332                                right(ios);
12333                                {
12334                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12335                                    std::string ex(str, iter.base());
12336                                    assert(ex == "************-0;000000E+00");
12337                                    assert(ios.width() == 0);
12338                                }
12339                                ios.width(25);
12340                                internal(ios);
12341                                {
12342                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12343                                    std::string ex(str, iter.base());
12344                                    assert(ex == "-************0;000000E+00");
12345                                    assert(ios.width() == 0);
12346                                }
12347                            }
12348                        }
12349                    }
12350                    showpos(ios);
12351                    {
12352                        noshowpoint(ios);
12353                        {
12354                            ios.imbue(lc);
12355                            {
12356                                ios.width(0);
12357                                {
12358                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12359                                    std::string ex(str, iter.base());
12360                                    assert(ex == "-0.000000E+00");
12361                                    assert(ios.width() == 0);
12362                                }
12363                                ios.width(25);
12364                                left(ios);
12365                                {
12366                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12367                                    std::string ex(str, iter.base());
12368                                    assert(ex == "-0.000000E+00************");
12369                                    assert(ios.width() == 0);
12370                                }
12371                                ios.width(25);
12372                                right(ios);
12373                                {
12374                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12375                                    std::string ex(str, iter.base());
12376                                    assert(ex == "************-0.000000E+00");
12377                                    assert(ios.width() == 0);
12378                                }
12379                                ios.width(25);
12380                                internal(ios);
12381                                {
12382                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12383                                    std::string ex(str, iter.base());
12384                                    assert(ex == "-************0.000000E+00");
12385                                    assert(ios.width() == 0);
12386                                }
12387                            }
12388                            ios.imbue(lg);
12389                            {
12390                                ios.width(0);
12391                                {
12392                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12393                                    std::string ex(str, iter.base());
12394                                    assert(ex == "-0;000000E+00");
12395                                    assert(ios.width() == 0);
12396                                }
12397                                ios.width(25);
12398                                left(ios);
12399                                {
12400                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12401                                    std::string ex(str, iter.base());
12402                                    assert(ex == "-0;000000E+00************");
12403                                    assert(ios.width() == 0);
12404                                }
12405                                ios.width(25);
12406                                right(ios);
12407                                {
12408                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12409                                    std::string ex(str, iter.base());
12410                                    assert(ex == "************-0;000000E+00");
12411                                    assert(ios.width() == 0);
12412                                }
12413                                ios.width(25);
12414                                internal(ios);
12415                                {
12416                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12417                                    std::string ex(str, iter.base());
12418                                    assert(ex == "-************0;000000E+00");
12419                                    assert(ios.width() == 0);
12420                                }
12421                            }
12422                        }
12423                        showpoint(ios);
12424                        {
12425                            ios.imbue(lc);
12426                            {
12427                                ios.width(0);
12428                                {
12429                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12430                                    std::string ex(str, iter.base());
12431                                    assert(ex == "-0.000000E+00");
12432                                    assert(ios.width() == 0);
12433                                }
12434                                ios.width(25);
12435                                left(ios);
12436                                {
12437                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12438                                    std::string ex(str, iter.base());
12439                                    assert(ex == "-0.000000E+00************");
12440                                    assert(ios.width() == 0);
12441                                }
12442                                ios.width(25);
12443                                right(ios);
12444                                {
12445                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12446                                    std::string ex(str, iter.base());
12447                                    assert(ex == "************-0.000000E+00");
12448                                    assert(ios.width() == 0);
12449                                }
12450                                ios.width(25);
12451                                internal(ios);
12452                                {
12453                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12454                                    std::string ex(str, iter.base());
12455                                    assert(ex == "-************0.000000E+00");
12456                                    assert(ios.width() == 0);
12457                                }
12458                            }
12459                            ios.imbue(lg);
12460                            {
12461                                ios.width(0);
12462                                {
12463                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12464                                    std::string ex(str, iter.base());
12465                                    assert(ex == "-0;000000E+00");
12466                                    assert(ios.width() == 0);
12467                                }
12468                                ios.width(25);
12469                                left(ios);
12470                                {
12471                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12472                                    std::string ex(str, iter.base());
12473                                    assert(ex == "-0;000000E+00************");
12474                                    assert(ios.width() == 0);
12475                                }
12476                                ios.width(25);
12477                                right(ios);
12478                                {
12479                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12480                                    std::string ex(str, iter.base());
12481                                    assert(ex == "************-0;000000E+00");
12482                                    assert(ios.width() == 0);
12483                                }
12484                                ios.width(25);
12485                                internal(ios);
12486                                {
12487                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12488                                    std::string ex(str, iter.base());
12489                                    assert(ex == "-************0;000000E+00");
12490                                    assert(ios.width() == 0);
12491                                }
12492                            }
12493                        }
12494                    }
12495                }
12496            }
12497            ios.precision(16);
12498            {
12499            }
12500            ios.precision(60);
12501            {
12502            }
12503        }
12504    }
12505}
12506
12507void test6()
12508{
12509    char str[200];
12510    output_iterator<char*> iter;
12511    std::locale lc = std::locale::classic();
12512    std::locale lg(lc, new my_numpunct);
12513    const my_facet f(1);
12514    {
12515        double v = 1234567890.125;
12516        std::ios ios(0);
12517        scientific(ios);
12518        // %e
12519        {
12520            ios.precision(0);
12521            {
12522                nouppercase(ios);
12523                {
12524                    noshowpos(ios);
12525                    {
12526                        noshowpoint(ios);
12527                        {
12528                            ios.imbue(lc);
12529                            {
12530                                ios.width(0);
12531                                {
12532                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12533                                    std::string ex(str, iter.base());
12534                                    assert(ex == "1e+09");
12535                                    assert(ios.width() == 0);
12536                                }
12537                                ios.width(25);
12538                                left(ios);
12539                                {
12540                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12541                                    std::string ex(str, iter.base());
12542                                    assert(ex == "1e+09********************");
12543                                    assert(ios.width() == 0);
12544                                }
12545                                ios.width(25);
12546                                right(ios);
12547                                {
12548                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12549                                    std::string ex(str, iter.base());
12550                                    assert(ex == "********************1e+09");
12551                                    assert(ios.width() == 0);
12552                                }
12553                                ios.width(25);
12554                                internal(ios);
12555                                {
12556                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12557                                    std::string ex(str, iter.base());
12558                                    assert(ex == "********************1e+09");
12559                                    assert(ios.width() == 0);
12560                                }
12561                            }
12562                            ios.imbue(lg);
12563                            {
12564                                ios.width(0);
12565                                {
12566                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12567                                    std::string ex(str, iter.base());
12568                                    assert(ex == "1e+09");
12569                                    assert(ios.width() == 0);
12570                                }
12571                                ios.width(25);
12572                                left(ios);
12573                                {
12574                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12575                                    std::string ex(str, iter.base());
12576                                    assert(ex == "1e+09********************");
12577                                    assert(ios.width() == 0);
12578                                }
12579                                ios.width(25);
12580                                right(ios);
12581                                {
12582                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12583                                    std::string ex(str, iter.base());
12584                                    assert(ex == "********************1e+09");
12585                                    assert(ios.width() == 0);
12586                                }
12587                                ios.width(25);
12588                                internal(ios);
12589                                {
12590                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12591                                    std::string ex(str, iter.base());
12592                                    assert(ex == "********************1e+09");
12593                                    assert(ios.width() == 0);
12594                                }
12595                            }
12596                        }
12597                        showpoint(ios);
12598                        {
12599                            ios.imbue(lc);
12600                            {
12601                                ios.width(0);
12602                                {
12603                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12604                                    std::string ex(str, iter.base());
12605                                    assert(ex == "1.e+09");
12606                                    assert(ios.width() == 0);
12607                                }
12608                                ios.width(25);
12609                                left(ios);
12610                                {
12611                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12612                                    std::string ex(str, iter.base());
12613                                    assert(ex == "1.e+09*******************");
12614                                    assert(ios.width() == 0);
12615                                }
12616                                ios.width(25);
12617                                right(ios);
12618                                {
12619                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12620                                    std::string ex(str, iter.base());
12621                                    assert(ex == "*******************1.e+09");
12622                                    assert(ios.width() == 0);
12623                                }
12624                                ios.width(25);
12625                                internal(ios);
12626                                {
12627                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12628                                    std::string ex(str, iter.base());
12629                                    assert(ex == "*******************1.e+09");
12630                                    assert(ios.width() == 0);
12631                                }
12632                            }
12633                            ios.imbue(lg);
12634                            {
12635                                ios.width(0);
12636                                {
12637                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12638                                    std::string ex(str, iter.base());
12639                                    assert(ex == "1;e+09");
12640                                    assert(ios.width() == 0);
12641                                }
12642                                ios.width(25);
12643                                left(ios);
12644                                {
12645                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12646                                    std::string ex(str, iter.base());
12647                                    assert(ex == "1;e+09*******************");
12648                                    assert(ios.width() == 0);
12649                                }
12650                                ios.width(25);
12651                                right(ios);
12652                                {
12653                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12654                                    std::string ex(str, iter.base());
12655                                    assert(ex == "*******************1;e+09");
12656                                    assert(ios.width() == 0);
12657                                }
12658                                ios.width(25);
12659                                internal(ios);
12660                                {
12661                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12662                                    std::string ex(str, iter.base());
12663                                    assert(ex == "*******************1;e+09");
12664                                    assert(ios.width() == 0);
12665                                }
12666                            }
12667                        }
12668                    }
12669                    showpos(ios);
12670                    {
12671                        noshowpoint(ios);
12672                        {
12673                            ios.imbue(lc);
12674                            {
12675                                ios.width(0);
12676                                {
12677                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12678                                    std::string ex(str, iter.base());
12679                                    assert(ex == "+1e+09");
12680                                    assert(ios.width() == 0);
12681                                }
12682                                ios.width(25);
12683                                left(ios);
12684                                {
12685                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12686                                    std::string ex(str, iter.base());
12687                                    assert(ex == "+1e+09*******************");
12688                                    assert(ios.width() == 0);
12689                                }
12690                                ios.width(25);
12691                                right(ios);
12692                                {
12693                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12694                                    std::string ex(str, iter.base());
12695                                    assert(ex == "*******************+1e+09");
12696                                    assert(ios.width() == 0);
12697                                }
12698                                ios.width(25);
12699                                internal(ios);
12700                                {
12701                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12702                                    std::string ex(str, iter.base());
12703                                    assert(ex == "+*******************1e+09");
12704                                    assert(ios.width() == 0);
12705                                }
12706                            }
12707                            ios.imbue(lg);
12708                            {
12709                                ios.width(0);
12710                                {
12711                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12712                                    std::string ex(str, iter.base());
12713                                    assert(ex == "+1e+09");
12714                                    assert(ios.width() == 0);
12715                                }
12716                                ios.width(25);
12717                                left(ios);
12718                                {
12719                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12720                                    std::string ex(str, iter.base());
12721                                    assert(ex == "+1e+09*******************");
12722                                    assert(ios.width() == 0);
12723                                }
12724                                ios.width(25);
12725                                right(ios);
12726                                {
12727                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12728                                    std::string ex(str, iter.base());
12729                                    assert(ex == "*******************+1e+09");
12730                                    assert(ios.width() == 0);
12731                                }
12732                                ios.width(25);
12733                                internal(ios);
12734                                {
12735                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12736                                    std::string ex(str, iter.base());
12737                                    assert(ex == "+*******************1e+09");
12738                                    assert(ios.width() == 0);
12739                                }
12740                            }
12741                        }
12742                        showpoint(ios);
12743                        {
12744                            ios.imbue(lc);
12745                            {
12746                                ios.width(0);
12747                                {
12748                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12749                                    std::string ex(str, iter.base());
12750                                    assert(ex == "+1.e+09");
12751                                    assert(ios.width() == 0);
12752                                }
12753                                ios.width(25);
12754                                left(ios);
12755                                {
12756                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12757                                    std::string ex(str, iter.base());
12758                                    assert(ex == "+1.e+09******************");
12759                                    assert(ios.width() == 0);
12760                                }
12761                                ios.width(25);
12762                                right(ios);
12763                                {
12764                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12765                                    std::string ex(str, iter.base());
12766                                    assert(ex == "******************+1.e+09");
12767                                    assert(ios.width() == 0);
12768                                }
12769                                ios.width(25);
12770                                internal(ios);
12771                                {
12772                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12773                                    std::string ex(str, iter.base());
12774                                    assert(ex == "+******************1.e+09");
12775                                    assert(ios.width() == 0);
12776                                }
12777                            }
12778                            ios.imbue(lg);
12779                            {
12780                                ios.width(0);
12781                                {
12782                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12783                                    std::string ex(str, iter.base());
12784                                    assert(ex == "+1;e+09");
12785                                    assert(ios.width() == 0);
12786                                }
12787                                ios.width(25);
12788                                left(ios);
12789                                {
12790                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12791                                    std::string ex(str, iter.base());
12792                                    assert(ex == "+1;e+09******************");
12793                                    assert(ios.width() == 0);
12794                                }
12795                                ios.width(25);
12796                                right(ios);
12797                                {
12798                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12799                                    std::string ex(str, iter.base());
12800                                    assert(ex == "******************+1;e+09");
12801                                    assert(ios.width() == 0);
12802                                }
12803                                ios.width(25);
12804                                internal(ios);
12805                                {
12806                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12807                                    std::string ex(str, iter.base());
12808                                    assert(ex == "+******************1;e+09");
12809                                    assert(ios.width() == 0);
12810                                }
12811                            }
12812                        }
12813                    }
12814                }
12815                uppercase(ios);
12816                {
12817                    noshowpos(ios);
12818                    {
12819                        noshowpoint(ios);
12820                        {
12821                            ios.imbue(lc);
12822                            {
12823                                ios.width(0);
12824                                {
12825                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12826                                    std::string ex(str, iter.base());
12827                                    assert(ex == "1E+09");
12828                                    assert(ios.width() == 0);
12829                                }
12830                                ios.width(25);
12831                                left(ios);
12832                                {
12833                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12834                                    std::string ex(str, iter.base());
12835                                    assert(ex == "1E+09********************");
12836                                    assert(ios.width() == 0);
12837                                }
12838                                ios.width(25);
12839                                right(ios);
12840                                {
12841                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12842                                    std::string ex(str, iter.base());
12843                                    assert(ex == "********************1E+09");
12844                                    assert(ios.width() == 0);
12845                                }
12846                                ios.width(25);
12847                                internal(ios);
12848                                {
12849                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12850                                    std::string ex(str, iter.base());
12851                                    assert(ex == "********************1E+09");
12852                                    assert(ios.width() == 0);
12853                                }
12854                            }
12855                            ios.imbue(lg);
12856                            {
12857                                ios.width(0);
12858                                {
12859                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12860                                    std::string ex(str, iter.base());
12861                                    assert(ex == "1E+09");
12862                                    assert(ios.width() == 0);
12863                                }
12864                                ios.width(25);
12865                                left(ios);
12866                                {
12867                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12868                                    std::string ex(str, iter.base());
12869                                    assert(ex == "1E+09********************");
12870                                    assert(ios.width() == 0);
12871                                }
12872                                ios.width(25);
12873                                right(ios);
12874                                {
12875                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12876                                    std::string ex(str, iter.base());
12877                                    assert(ex == "********************1E+09");
12878                                    assert(ios.width() == 0);
12879                                }
12880                                ios.width(25);
12881                                internal(ios);
12882                                {
12883                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12884                                    std::string ex(str, iter.base());
12885                                    assert(ex == "********************1E+09");
12886                                    assert(ios.width() == 0);
12887                                }
12888                            }
12889                        }
12890                        showpoint(ios);
12891                        {
12892                            ios.imbue(lc);
12893                            {
12894                                ios.width(0);
12895                                {
12896                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12897                                    std::string ex(str, iter.base());
12898                                    assert(ex == "1.E+09");
12899                                    assert(ios.width() == 0);
12900                                }
12901                                ios.width(25);
12902                                left(ios);
12903                                {
12904                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12905                                    std::string ex(str, iter.base());
12906                                    assert(ex == "1.E+09*******************");
12907                                    assert(ios.width() == 0);
12908                                }
12909                                ios.width(25);
12910                                right(ios);
12911                                {
12912                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12913                                    std::string ex(str, iter.base());
12914                                    assert(ex == "*******************1.E+09");
12915                                    assert(ios.width() == 0);
12916                                }
12917                                ios.width(25);
12918                                internal(ios);
12919                                {
12920                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12921                                    std::string ex(str, iter.base());
12922                                    assert(ex == "*******************1.E+09");
12923                                    assert(ios.width() == 0);
12924                                }
12925                            }
12926                            ios.imbue(lg);
12927                            {
12928                                ios.width(0);
12929                                {
12930                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12931                                    std::string ex(str, iter.base());
12932                                    assert(ex == "1;E+09");
12933                                    assert(ios.width() == 0);
12934                                }
12935                                ios.width(25);
12936                                left(ios);
12937                                {
12938                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12939                                    std::string ex(str, iter.base());
12940                                    assert(ex == "1;E+09*******************");
12941                                    assert(ios.width() == 0);
12942                                }
12943                                ios.width(25);
12944                                right(ios);
12945                                {
12946                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12947                                    std::string ex(str, iter.base());
12948                                    assert(ex == "*******************1;E+09");
12949                                    assert(ios.width() == 0);
12950                                }
12951                                ios.width(25);
12952                                internal(ios);
12953                                {
12954                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12955                                    std::string ex(str, iter.base());
12956                                    assert(ex == "*******************1;E+09");
12957                                    assert(ios.width() == 0);
12958                                }
12959                            }
12960                        }
12961                    }
12962                    showpos(ios);
12963                    {
12964                        noshowpoint(ios);
12965                        {
12966                            ios.imbue(lc);
12967                            {
12968                                ios.width(0);
12969                                {
12970                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12971                                    std::string ex(str, iter.base());
12972                                    assert(ex == "+1E+09");
12973                                    assert(ios.width() == 0);
12974                                }
12975                                ios.width(25);
12976                                left(ios);
12977                                {
12978                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12979                                    std::string ex(str, iter.base());
12980                                    assert(ex == "+1E+09*******************");
12981                                    assert(ios.width() == 0);
12982                                }
12983                                ios.width(25);
12984                                right(ios);
12985                                {
12986                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12987                                    std::string ex(str, iter.base());
12988                                    assert(ex == "*******************+1E+09");
12989                                    assert(ios.width() == 0);
12990                                }
12991                                ios.width(25);
12992                                internal(ios);
12993                                {
12994                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
12995                                    std::string ex(str, iter.base());
12996                                    assert(ex == "+*******************1E+09");
12997                                    assert(ios.width() == 0);
12998                                }
12999                            }
13000                            ios.imbue(lg);
13001                            {
13002                                ios.width(0);
13003                                {
13004                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13005                                    std::string ex(str, iter.base());
13006                                    assert(ex == "+1E+09");
13007                                    assert(ios.width() == 0);
13008                                }
13009                                ios.width(25);
13010                                left(ios);
13011                                {
13012                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13013                                    std::string ex(str, iter.base());
13014                                    assert(ex == "+1E+09*******************");
13015                                    assert(ios.width() == 0);
13016                                }
13017                                ios.width(25);
13018                                right(ios);
13019                                {
13020                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13021                                    std::string ex(str, iter.base());
13022                                    assert(ex == "*******************+1E+09");
13023                                    assert(ios.width() == 0);
13024                                }
13025                                ios.width(25);
13026                                internal(ios);
13027                                {
13028                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13029                                    std::string ex(str, iter.base());
13030                                    assert(ex == "+*******************1E+09");
13031                                    assert(ios.width() == 0);
13032                                }
13033                            }
13034                        }
13035                        showpoint(ios);
13036                        {
13037                            ios.imbue(lc);
13038                            {
13039                                ios.width(0);
13040                                {
13041                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13042                                    std::string ex(str, iter.base());
13043                                    assert(ex == "+1.E+09");
13044                                    assert(ios.width() == 0);
13045                                }
13046                                ios.width(25);
13047                                left(ios);
13048                                {
13049                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13050                                    std::string ex(str, iter.base());
13051                                    assert(ex == "+1.E+09******************");
13052                                    assert(ios.width() == 0);
13053                                }
13054                                ios.width(25);
13055                                right(ios);
13056                                {
13057                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13058                                    std::string ex(str, iter.base());
13059                                    assert(ex == "******************+1.E+09");
13060                                    assert(ios.width() == 0);
13061                                }
13062                                ios.width(25);
13063                                internal(ios);
13064                                {
13065                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13066                                    std::string ex(str, iter.base());
13067                                    assert(ex == "+******************1.E+09");
13068                                    assert(ios.width() == 0);
13069                                }
13070                            }
13071                            ios.imbue(lg);
13072                            {
13073                                ios.width(0);
13074                                {
13075                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13076                                    std::string ex(str, iter.base());
13077                                    assert(ex == "+1;E+09");
13078                                    assert(ios.width() == 0);
13079                                }
13080                                ios.width(25);
13081                                left(ios);
13082                                {
13083                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13084                                    std::string ex(str, iter.base());
13085                                    assert(ex == "+1;E+09******************");
13086                                    assert(ios.width() == 0);
13087                                }
13088                                ios.width(25);
13089                                right(ios);
13090                                {
13091                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13092                                    std::string ex(str, iter.base());
13093                                    assert(ex == "******************+1;E+09");
13094                                    assert(ios.width() == 0);
13095                                }
13096                                ios.width(25);
13097                                internal(ios);
13098                                {
13099                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13100                                    std::string ex(str, iter.base());
13101                                    assert(ex == "+******************1;E+09");
13102                                    assert(ios.width() == 0);
13103                                }
13104                            }
13105                        }
13106                    }
13107                }
13108            }
13109            ios.precision(1);
13110            {
13111                nouppercase(ios);
13112                {
13113                    noshowpos(ios);
13114                    {
13115                        noshowpoint(ios);
13116                        {
13117                            ios.imbue(lc);
13118                            {
13119                                ios.width(0);
13120                                {
13121                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13122                                    std::string ex(str, iter.base());
13123                                    assert(ex == "1.2e+09");
13124                                    assert(ios.width() == 0);
13125                                }
13126                                ios.width(25);
13127                                left(ios);
13128                                {
13129                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13130                                    std::string ex(str, iter.base());
13131                                    assert(ex == "1.2e+09******************");
13132                                    assert(ios.width() == 0);
13133                                }
13134                                ios.width(25);
13135                                right(ios);
13136                                {
13137                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13138                                    std::string ex(str, iter.base());
13139                                    assert(ex == "******************1.2e+09");
13140                                    assert(ios.width() == 0);
13141                                }
13142                                ios.width(25);
13143                                internal(ios);
13144                                {
13145                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13146                                    std::string ex(str, iter.base());
13147                                    assert(ex == "******************1.2e+09");
13148                                    assert(ios.width() == 0);
13149                                }
13150                            }
13151                            ios.imbue(lg);
13152                            {
13153                                ios.width(0);
13154                                {
13155                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13156                                    std::string ex(str, iter.base());
13157                                    assert(ex == "1;2e+09");
13158                                    assert(ios.width() == 0);
13159                                }
13160                                ios.width(25);
13161                                left(ios);
13162                                {
13163                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13164                                    std::string ex(str, iter.base());
13165                                    assert(ex == "1;2e+09******************");
13166                                    assert(ios.width() == 0);
13167                                }
13168                                ios.width(25);
13169                                right(ios);
13170                                {
13171                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13172                                    std::string ex(str, iter.base());
13173                                    assert(ex == "******************1;2e+09");
13174                                    assert(ios.width() == 0);
13175                                }
13176                                ios.width(25);
13177                                internal(ios);
13178                                {
13179                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13180                                    std::string ex(str, iter.base());
13181                                    assert(ex == "******************1;2e+09");
13182                                    assert(ios.width() == 0);
13183                                }
13184                            }
13185                        }
13186                        showpoint(ios);
13187                        {
13188                            ios.imbue(lc);
13189                            {
13190                                ios.width(0);
13191                                {
13192                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13193                                    std::string ex(str, iter.base());
13194                                    assert(ex == "1.2e+09");
13195                                    assert(ios.width() == 0);
13196                                }
13197                                ios.width(25);
13198                                left(ios);
13199                                {
13200                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13201                                    std::string ex(str, iter.base());
13202                                    assert(ex == "1.2e+09******************");
13203                                    assert(ios.width() == 0);
13204                                }
13205                                ios.width(25);
13206                                right(ios);
13207                                {
13208                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13209                                    std::string ex(str, iter.base());
13210                                    assert(ex == "******************1.2e+09");
13211                                    assert(ios.width() == 0);
13212                                }
13213                                ios.width(25);
13214                                internal(ios);
13215                                {
13216                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13217                                    std::string ex(str, iter.base());
13218                                    assert(ex == "******************1.2e+09");
13219                                    assert(ios.width() == 0);
13220                                }
13221                            }
13222                            ios.imbue(lg);
13223                            {
13224                                ios.width(0);
13225                                {
13226                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13227                                    std::string ex(str, iter.base());
13228                                    assert(ex == "1;2e+09");
13229                                    assert(ios.width() == 0);
13230                                }
13231                                ios.width(25);
13232                                left(ios);
13233                                {
13234                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13235                                    std::string ex(str, iter.base());
13236                                    assert(ex == "1;2e+09******************");
13237                                    assert(ios.width() == 0);
13238                                }
13239                                ios.width(25);
13240                                right(ios);
13241                                {
13242                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13243                                    std::string ex(str, iter.base());
13244                                    assert(ex == "******************1;2e+09");
13245                                    assert(ios.width() == 0);
13246                                }
13247                                ios.width(25);
13248                                internal(ios);
13249                                {
13250                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13251                                    std::string ex(str, iter.base());
13252                                    assert(ex == "******************1;2e+09");
13253                                    assert(ios.width() == 0);
13254                                }
13255                            }
13256                        }
13257                    }
13258                    showpos(ios);
13259                    {
13260                        noshowpoint(ios);
13261                        {
13262                            ios.imbue(lc);
13263                            {
13264                                ios.width(0);
13265                                {
13266                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13267                                    std::string ex(str, iter.base());
13268                                    assert(ex == "+1.2e+09");
13269                                    assert(ios.width() == 0);
13270                                }
13271                                ios.width(25);
13272                                left(ios);
13273                                {
13274                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13275                                    std::string ex(str, iter.base());
13276                                    assert(ex == "+1.2e+09*****************");
13277                                    assert(ios.width() == 0);
13278                                }
13279                                ios.width(25);
13280                                right(ios);
13281                                {
13282                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13283                                    std::string ex(str, iter.base());
13284                                    assert(ex == "*****************+1.2e+09");
13285                                    assert(ios.width() == 0);
13286                                }
13287                                ios.width(25);
13288                                internal(ios);
13289                                {
13290                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13291                                    std::string ex(str, iter.base());
13292                                    assert(ex == "+*****************1.2e+09");
13293                                    assert(ios.width() == 0);
13294                                }
13295                            }
13296                            ios.imbue(lg);
13297                            {
13298                                ios.width(0);
13299                                {
13300                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13301                                    std::string ex(str, iter.base());
13302                                    assert(ex == "+1;2e+09");
13303                                    assert(ios.width() == 0);
13304                                }
13305                                ios.width(25);
13306                                left(ios);
13307                                {
13308                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13309                                    std::string ex(str, iter.base());
13310                                    assert(ex == "+1;2e+09*****************");
13311                                    assert(ios.width() == 0);
13312                                }
13313                                ios.width(25);
13314                                right(ios);
13315                                {
13316                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13317                                    std::string ex(str, iter.base());
13318                                    assert(ex == "*****************+1;2e+09");
13319                                    assert(ios.width() == 0);
13320                                }
13321                                ios.width(25);
13322                                internal(ios);
13323                                {
13324                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13325                                    std::string ex(str, iter.base());
13326                                    assert(ex == "+*****************1;2e+09");
13327                                    assert(ios.width() == 0);
13328                                }
13329                            }
13330                        }
13331                        showpoint(ios);
13332                        {
13333                            ios.imbue(lc);
13334                            {
13335                                ios.width(0);
13336                                {
13337                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13338                                    std::string ex(str, iter.base());
13339                                    assert(ex == "+1.2e+09");
13340                                    assert(ios.width() == 0);
13341                                }
13342                                ios.width(25);
13343                                left(ios);
13344                                {
13345                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13346                                    std::string ex(str, iter.base());
13347                                    assert(ex == "+1.2e+09*****************");
13348                                    assert(ios.width() == 0);
13349                                }
13350                                ios.width(25);
13351                                right(ios);
13352                                {
13353                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13354                                    std::string ex(str, iter.base());
13355                                    assert(ex == "*****************+1.2e+09");
13356                                    assert(ios.width() == 0);
13357                                }
13358                                ios.width(25);
13359                                internal(ios);
13360                                {
13361                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13362                                    std::string ex(str, iter.base());
13363                                    assert(ex == "+*****************1.2e+09");
13364                                    assert(ios.width() == 0);
13365                                }
13366                            }
13367                            ios.imbue(lg);
13368                            {
13369                                ios.width(0);
13370                                {
13371                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13372                                    std::string ex(str, iter.base());
13373                                    assert(ex == "+1;2e+09");
13374                                    assert(ios.width() == 0);
13375                                }
13376                                ios.width(25);
13377                                left(ios);
13378                                {
13379                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13380                                    std::string ex(str, iter.base());
13381                                    assert(ex == "+1;2e+09*****************");
13382                                    assert(ios.width() == 0);
13383                                }
13384                                ios.width(25);
13385                                right(ios);
13386                                {
13387                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13388                                    std::string ex(str, iter.base());
13389                                    assert(ex == "*****************+1;2e+09");
13390                                    assert(ios.width() == 0);
13391                                }
13392                                ios.width(25);
13393                                internal(ios);
13394                                {
13395                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13396                                    std::string ex(str, iter.base());
13397                                    assert(ex == "+*****************1;2e+09");
13398                                    assert(ios.width() == 0);
13399                                }
13400                            }
13401                        }
13402                    }
13403                }
13404                uppercase(ios);
13405                {
13406                    noshowpos(ios);
13407                    {
13408                        noshowpoint(ios);
13409                        {
13410                            ios.imbue(lc);
13411                            {
13412                                ios.width(0);
13413                                {
13414                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13415                                    std::string ex(str, iter.base());
13416                                    assert(ex == "1.2E+09");
13417                                    assert(ios.width() == 0);
13418                                }
13419                                ios.width(25);
13420                                left(ios);
13421                                {
13422                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13423                                    std::string ex(str, iter.base());
13424                                    assert(ex == "1.2E+09******************");
13425                                    assert(ios.width() == 0);
13426                                }
13427                                ios.width(25);
13428                                right(ios);
13429                                {
13430                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13431                                    std::string ex(str, iter.base());
13432                                    assert(ex == "******************1.2E+09");
13433                                    assert(ios.width() == 0);
13434                                }
13435                                ios.width(25);
13436                                internal(ios);
13437                                {
13438                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13439                                    std::string ex(str, iter.base());
13440                                    assert(ex == "******************1.2E+09");
13441                                    assert(ios.width() == 0);
13442                                }
13443                            }
13444                            ios.imbue(lg);
13445                            {
13446                                ios.width(0);
13447                                {
13448                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13449                                    std::string ex(str, iter.base());
13450                                    assert(ex == "1;2E+09");
13451                                    assert(ios.width() == 0);
13452                                }
13453                                ios.width(25);
13454                                left(ios);
13455                                {
13456                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13457                                    std::string ex(str, iter.base());
13458                                    assert(ex == "1;2E+09******************");
13459                                    assert(ios.width() == 0);
13460                                }
13461                                ios.width(25);
13462                                right(ios);
13463                                {
13464                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13465                                    std::string ex(str, iter.base());
13466                                    assert(ex == "******************1;2E+09");
13467                                    assert(ios.width() == 0);
13468                                }
13469                                ios.width(25);
13470                                internal(ios);
13471                                {
13472                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13473                                    std::string ex(str, iter.base());
13474                                    assert(ex == "******************1;2E+09");
13475                                    assert(ios.width() == 0);
13476                                }
13477                            }
13478                        }
13479                        showpoint(ios);
13480                        {
13481                            ios.imbue(lc);
13482                            {
13483                                ios.width(0);
13484                                {
13485                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13486                                    std::string ex(str, iter.base());
13487                                    assert(ex == "1.2E+09");
13488                                    assert(ios.width() == 0);
13489                                }
13490                                ios.width(25);
13491                                left(ios);
13492                                {
13493                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13494                                    std::string ex(str, iter.base());
13495                                    assert(ex == "1.2E+09******************");
13496                                    assert(ios.width() == 0);
13497                                }
13498                                ios.width(25);
13499                                right(ios);
13500                                {
13501                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13502                                    std::string ex(str, iter.base());
13503                                    assert(ex == "******************1.2E+09");
13504                                    assert(ios.width() == 0);
13505                                }
13506                                ios.width(25);
13507                                internal(ios);
13508                                {
13509                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13510                                    std::string ex(str, iter.base());
13511                                    assert(ex == "******************1.2E+09");
13512                                    assert(ios.width() == 0);
13513                                }
13514                            }
13515                            ios.imbue(lg);
13516                            {
13517                                ios.width(0);
13518                                {
13519                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13520                                    std::string ex(str, iter.base());
13521                                    assert(ex == "1;2E+09");
13522                                    assert(ios.width() == 0);
13523                                }
13524                                ios.width(25);
13525                                left(ios);
13526                                {
13527                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13528                                    std::string ex(str, iter.base());
13529                                    assert(ex == "1;2E+09******************");
13530                                    assert(ios.width() == 0);
13531                                }
13532                                ios.width(25);
13533                                right(ios);
13534                                {
13535                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13536                                    std::string ex(str, iter.base());
13537                                    assert(ex == "******************1;2E+09");
13538                                    assert(ios.width() == 0);
13539                                }
13540                                ios.width(25);
13541                                internal(ios);
13542                                {
13543                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13544                                    std::string ex(str, iter.base());
13545                                    assert(ex == "******************1;2E+09");
13546                                    assert(ios.width() == 0);
13547                                }
13548                            }
13549                        }
13550                    }
13551                    showpos(ios);
13552                    {
13553                        noshowpoint(ios);
13554                        {
13555                            ios.imbue(lc);
13556                            {
13557                                ios.width(0);
13558                                {
13559                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13560                                    std::string ex(str, iter.base());
13561                                    assert(ex == "+1.2E+09");
13562                                    assert(ios.width() == 0);
13563                                }
13564                                ios.width(25);
13565                                left(ios);
13566                                {
13567                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13568                                    std::string ex(str, iter.base());
13569                                    assert(ex == "+1.2E+09*****************");
13570                                    assert(ios.width() == 0);
13571                                }
13572                                ios.width(25);
13573                                right(ios);
13574                                {
13575                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13576                                    std::string ex(str, iter.base());
13577                                    assert(ex == "*****************+1.2E+09");
13578                                    assert(ios.width() == 0);
13579                                }
13580                                ios.width(25);
13581                                internal(ios);
13582                                {
13583                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13584                                    std::string ex(str, iter.base());
13585                                    assert(ex == "+*****************1.2E+09");
13586                                    assert(ios.width() == 0);
13587                                }
13588                            }
13589                            ios.imbue(lg);
13590                            {
13591                                ios.width(0);
13592                                {
13593                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13594                                    std::string ex(str, iter.base());
13595                                    assert(ex == "+1;2E+09");
13596                                    assert(ios.width() == 0);
13597                                }
13598                                ios.width(25);
13599                                left(ios);
13600                                {
13601                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13602                                    std::string ex(str, iter.base());
13603                                    assert(ex == "+1;2E+09*****************");
13604                                    assert(ios.width() == 0);
13605                                }
13606                                ios.width(25);
13607                                right(ios);
13608                                {
13609                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13610                                    std::string ex(str, iter.base());
13611                                    assert(ex == "*****************+1;2E+09");
13612                                    assert(ios.width() == 0);
13613                                }
13614                                ios.width(25);
13615                                internal(ios);
13616                                {
13617                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13618                                    std::string ex(str, iter.base());
13619                                    assert(ex == "+*****************1;2E+09");
13620                                    assert(ios.width() == 0);
13621                                }
13622                            }
13623                        }
13624                        showpoint(ios);
13625                        {
13626                            ios.imbue(lc);
13627                            {
13628                                ios.width(0);
13629                                {
13630                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13631                                    std::string ex(str, iter.base());
13632                                    assert(ex == "+1.2E+09");
13633                                    assert(ios.width() == 0);
13634                                }
13635                                ios.width(25);
13636                                left(ios);
13637                                {
13638                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13639                                    std::string ex(str, iter.base());
13640                                    assert(ex == "+1.2E+09*****************");
13641                                    assert(ios.width() == 0);
13642                                }
13643                                ios.width(25);
13644                                right(ios);
13645                                {
13646                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13647                                    std::string ex(str, iter.base());
13648                                    assert(ex == "*****************+1.2E+09");
13649                                    assert(ios.width() == 0);
13650                                }
13651                                ios.width(25);
13652                                internal(ios);
13653                                {
13654                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13655                                    std::string ex(str, iter.base());
13656                                    assert(ex == "+*****************1.2E+09");
13657                                    assert(ios.width() == 0);
13658                                }
13659                            }
13660                            ios.imbue(lg);
13661                            {
13662                                ios.width(0);
13663                                {
13664                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13665                                    std::string ex(str, iter.base());
13666                                    assert(ex == "+1;2E+09");
13667                                    assert(ios.width() == 0);
13668                                }
13669                                ios.width(25);
13670                                left(ios);
13671                                {
13672                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13673                                    std::string ex(str, iter.base());
13674                                    assert(ex == "+1;2E+09*****************");
13675                                    assert(ios.width() == 0);
13676                                }
13677                                ios.width(25);
13678                                right(ios);
13679                                {
13680                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13681                                    std::string ex(str, iter.base());
13682                                    assert(ex == "*****************+1;2E+09");
13683                                    assert(ios.width() == 0);
13684                                }
13685                                ios.width(25);
13686                                internal(ios);
13687                                {
13688                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13689                                    std::string ex(str, iter.base());
13690                                    assert(ex == "+*****************1;2E+09");
13691                                    assert(ios.width() == 0);
13692                                }
13693                            }
13694                        }
13695                    }
13696                }
13697            }
13698            ios.precision(6);
13699            {
13700            }
13701            ios.precision(16);
13702            {
13703            }
13704            ios.precision(60);
13705            {
13706                nouppercase(ios);
13707                {
13708                    noshowpos(ios);
13709                    {
13710                        noshowpoint(ios);
13711                        {
13712                            ios.imbue(lc);
13713                            {
13714                                ios.width(0);
13715                                {
13716                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13717                                    std::string ex(str, iter.base());
13718                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
13719                                    assert(ios.width() == 0);
13720                                }
13721                                ios.width(25);
13722                                left(ios);
13723                                {
13724                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13725                                    std::string ex(str, iter.base());
13726                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
13727                                    assert(ios.width() == 0);
13728                                }
13729                                ios.width(25);
13730                                right(ios);
13731                                {
13732                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13733                                    std::string ex(str, iter.base());
13734                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
13735                                    assert(ios.width() == 0);
13736                                }
13737                                ios.width(25);
13738                                internal(ios);
13739                                {
13740                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13741                                    std::string ex(str, iter.base());
13742                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
13743                                    assert(ios.width() == 0);
13744                                }
13745                            }
13746                            ios.imbue(lg);
13747                            {
13748                                ios.width(0);
13749                                {
13750                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13751                                    std::string ex(str, iter.base());
13752                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
13753                                    assert(ios.width() == 0);
13754                                }
13755                                ios.width(25);
13756                                left(ios);
13757                                {
13758                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13759                                    std::string ex(str, iter.base());
13760                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
13761                                    assert(ios.width() == 0);
13762                                }
13763                                ios.width(25);
13764                                right(ios);
13765                                {
13766                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13767                                    std::string ex(str, iter.base());
13768                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
13769                                    assert(ios.width() == 0);
13770                                }
13771                                ios.width(25);
13772                                internal(ios);
13773                                {
13774                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13775                                    std::string ex(str, iter.base());
13776                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
13777                                    assert(ios.width() == 0);
13778                                }
13779                            }
13780                        }
13781                        showpoint(ios);
13782                        {
13783                            ios.imbue(lc);
13784                            {
13785                                ios.width(0);
13786                                {
13787                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13788                                    std::string ex(str, iter.base());
13789                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
13790                                    assert(ios.width() == 0);
13791                                }
13792                                ios.width(25);
13793                                left(ios);
13794                                {
13795                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13796                                    std::string ex(str, iter.base());
13797                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
13798                                    assert(ios.width() == 0);
13799                                }
13800                                ios.width(25);
13801                                right(ios);
13802                                {
13803                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13804                                    std::string ex(str, iter.base());
13805                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
13806                                    assert(ios.width() == 0);
13807                                }
13808                                ios.width(25);
13809                                internal(ios);
13810                                {
13811                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13812                                    std::string ex(str, iter.base());
13813                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000e+09");
13814                                    assert(ios.width() == 0);
13815                                }
13816                            }
13817                            ios.imbue(lg);
13818                            {
13819                                ios.width(0);
13820                                {
13821                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13822                                    std::string ex(str, iter.base());
13823                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
13824                                    assert(ios.width() == 0);
13825                                }
13826                                ios.width(25);
13827                                left(ios);
13828                                {
13829                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13830                                    std::string ex(str, iter.base());
13831                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
13832                                    assert(ios.width() == 0);
13833                                }
13834                                ios.width(25);
13835                                right(ios);
13836                                {
13837                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13838                                    std::string ex(str, iter.base());
13839                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
13840                                    assert(ios.width() == 0);
13841                                }
13842                                ios.width(25);
13843                                internal(ios);
13844                                {
13845                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13846                                    std::string ex(str, iter.base());
13847                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000e+09");
13848                                    assert(ios.width() == 0);
13849                                }
13850                            }
13851                        }
13852                    }
13853                    showpos(ios);
13854                    {
13855                        noshowpoint(ios);
13856                        {
13857                            ios.imbue(lc);
13858                            {
13859                                ios.width(0);
13860                                {
13861                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13862                                    std::string ex(str, iter.base());
13863                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
13864                                    assert(ios.width() == 0);
13865                                }
13866                                ios.width(25);
13867                                left(ios);
13868                                {
13869                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13870                                    std::string ex(str, iter.base());
13871                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
13872                                    assert(ios.width() == 0);
13873                                }
13874                                ios.width(25);
13875                                right(ios);
13876                                {
13877                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13878                                    std::string ex(str, iter.base());
13879                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
13880                                    assert(ios.width() == 0);
13881                                }
13882                                ios.width(25);
13883                                internal(ios);
13884                                {
13885                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13886                                    std::string ex(str, iter.base());
13887                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
13888                                    assert(ios.width() == 0);
13889                                }
13890                            }
13891                            ios.imbue(lg);
13892                            {
13893                                ios.width(0);
13894                                {
13895                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13896                                    std::string ex(str, iter.base());
13897                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
13898                                    assert(ios.width() == 0);
13899                                }
13900                                ios.width(25);
13901                                left(ios);
13902                                {
13903                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13904                                    std::string ex(str, iter.base());
13905                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
13906                                    assert(ios.width() == 0);
13907                                }
13908                                ios.width(25);
13909                                right(ios);
13910                                {
13911                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13912                                    std::string ex(str, iter.base());
13913                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
13914                                    assert(ios.width() == 0);
13915                                }
13916                                ios.width(25);
13917                                internal(ios);
13918                                {
13919                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13920                                    std::string ex(str, iter.base());
13921                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
13922                                    assert(ios.width() == 0);
13923                                }
13924                            }
13925                        }
13926                        showpoint(ios);
13927                        {
13928                            ios.imbue(lc);
13929                            {
13930                                ios.width(0);
13931                                {
13932                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13933                                    std::string ex(str, iter.base());
13934                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
13935                                    assert(ios.width() == 0);
13936                                }
13937                                ios.width(25);
13938                                left(ios);
13939                                {
13940                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13941                                    std::string ex(str, iter.base());
13942                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
13943                                    assert(ios.width() == 0);
13944                                }
13945                                ios.width(25);
13946                                right(ios);
13947                                {
13948                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13949                                    std::string ex(str, iter.base());
13950                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
13951                                    assert(ios.width() == 0);
13952                                }
13953                                ios.width(25);
13954                                internal(ios);
13955                                {
13956                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13957                                    std::string ex(str, iter.base());
13958                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000e+09");
13959                                    assert(ios.width() == 0);
13960                                }
13961                            }
13962                            ios.imbue(lg);
13963                            {
13964                                ios.width(0);
13965                                {
13966                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13967                                    std::string ex(str, iter.base());
13968                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
13969                                    assert(ios.width() == 0);
13970                                }
13971                                ios.width(25);
13972                                left(ios);
13973                                {
13974                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13975                                    std::string ex(str, iter.base());
13976                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
13977                                    assert(ios.width() == 0);
13978                                }
13979                                ios.width(25);
13980                                right(ios);
13981                                {
13982                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13983                                    std::string ex(str, iter.base());
13984                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
13985                                    assert(ios.width() == 0);
13986                                }
13987                                ios.width(25);
13988                                internal(ios);
13989                                {
13990                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
13991                                    std::string ex(str, iter.base());
13992                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000e+09");
13993                                    assert(ios.width() == 0);
13994                                }
13995                            }
13996                        }
13997                    }
13998                }
13999                uppercase(ios);
14000                {
14001                    noshowpos(ios);
14002                    {
14003                        noshowpoint(ios);
14004                        {
14005                            ios.imbue(lc);
14006                            {
14007                                ios.width(0);
14008                                {
14009                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14010                                    std::string ex(str, iter.base());
14011                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
14012                                    assert(ios.width() == 0);
14013                                }
14014                                ios.width(25);
14015                                left(ios);
14016                                {
14017                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14018                                    std::string ex(str, iter.base());
14019                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
14020                                    assert(ios.width() == 0);
14021                                }
14022                                ios.width(25);
14023                                right(ios);
14024                                {
14025                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14026                                    std::string ex(str, iter.base());
14027                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
14028                                    assert(ios.width() == 0);
14029                                }
14030                                ios.width(25);
14031                                internal(ios);
14032                                {
14033                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14034                                    std::string ex(str, iter.base());
14035                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
14036                                    assert(ios.width() == 0);
14037                                }
14038                            }
14039                            ios.imbue(lg);
14040                            {
14041                                ios.width(0);
14042                                {
14043                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14044                                    std::string ex(str, iter.base());
14045                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
14046                                    assert(ios.width() == 0);
14047                                }
14048                                ios.width(25);
14049                                left(ios);
14050                                {
14051                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14052                                    std::string ex(str, iter.base());
14053                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
14054                                    assert(ios.width() == 0);
14055                                }
14056                                ios.width(25);
14057                                right(ios);
14058                                {
14059                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14060                                    std::string ex(str, iter.base());
14061                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
14062                                    assert(ios.width() == 0);
14063                                }
14064                                ios.width(25);
14065                                internal(ios);
14066                                {
14067                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14068                                    std::string ex(str, iter.base());
14069                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
14070                                    assert(ios.width() == 0);
14071                                }
14072                            }
14073                        }
14074                        showpoint(ios);
14075                        {
14076                            ios.imbue(lc);
14077                            {
14078                                ios.width(0);
14079                                {
14080                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14081                                    std::string ex(str, iter.base());
14082                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
14083                                    assert(ios.width() == 0);
14084                                }
14085                                ios.width(25);
14086                                left(ios);
14087                                {
14088                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14089                                    std::string ex(str, iter.base());
14090                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
14091                                    assert(ios.width() == 0);
14092                                }
14093                                ios.width(25);
14094                                right(ios);
14095                                {
14096                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14097                                    std::string ex(str, iter.base());
14098                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
14099                                    assert(ios.width() == 0);
14100                                }
14101                                ios.width(25);
14102                                internal(ios);
14103                                {
14104                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14105                                    std::string ex(str, iter.base());
14106                                    assert(ex == "1.234567890125000000000000000000000000000000000000000000000000E+09");
14107                                    assert(ios.width() == 0);
14108                                }
14109                            }
14110                            ios.imbue(lg);
14111                            {
14112                                ios.width(0);
14113                                {
14114                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14115                                    std::string ex(str, iter.base());
14116                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
14117                                    assert(ios.width() == 0);
14118                                }
14119                                ios.width(25);
14120                                left(ios);
14121                                {
14122                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14123                                    std::string ex(str, iter.base());
14124                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
14125                                    assert(ios.width() == 0);
14126                                }
14127                                ios.width(25);
14128                                right(ios);
14129                                {
14130                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14131                                    std::string ex(str, iter.base());
14132                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
14133                                    assert(ios.width() == 0);
14134                                }
14135                                ios.width(25);
14136                                internal(ios);
14137                                {
14138                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14139                                    std::string ex(str, iter.base());
14140                                    assert(ex == "1;234567890125000000000000000000000000000000000000000000000000E+09");
14141                                    assert(ios.width() == 0);
14142                                }
14143                            }
14144                        }
14145                    }
14146                    showpos(ios);
14147                    {
14148                        noshowpoint(ios);
14149                        {
14150                            ios.imbue(lc);
14151                            {
14152                                ios.width(0);
14153                                {
14154                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14155                                    std::string ex(str, iter.base());
14156                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
14157                                    assert(ios.width() == 0);
14158                                }
14159                                ios.width(25);
14160                                left(ios);
14161                                {
14162                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14163                                    std::string ex(str, iter.base());
14164                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
14165                                    assert(ios.width() == 0);
14166                                }
14167                                ios.width(25);
14168                                right(ios);
14169                                {
14170                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14171                                    std::string ex(str, iter.base());
14172                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
14173                                    assert(ios.width() == 0);
14174                                }
14175                                ios.width(25);
14176                                internal(ios);
14177                                {
14178                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14179                                    std::string ex(str, iter.base());
14180                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
14181                                    assert(ios.width() == 0);
14182                                }
14183                            }
14184                            ios.imbue(lg);
14185                            {
14186                                ios.width(0);
14187                                {
14188                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14189                                    std::string ex(str, iter.base());
14190                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
14191                                    assert(ios.width() == 0);
14192                                }
14193                                ios.width(25);
14194                                left(ios);
14195                                {
14196                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14197                                    std::string ex(str, iter.base());
14198                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
14199                                    assert(ios.width() == 0);
14200                                }
14201                                ios.width(25);
14202                                right(ios);
14203                                {
14204                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14205                                    std::string ex(str, iter.base());
14206                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
14207                                    assert(ios.width() == 0);
14208                                }
14209                                ios.width(25);
14210                                internal(ios);
14211                                {
14212                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14213                                    std::string ex(str, iter.base());
14214                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
14215                                    assert(ios.width() == 0);
14216                                }
14217                            }
14218                        }
14219                        showpoint(ios);
14220                        {
14221                            ios.imbue(lc);
14222                            {
14223                                ios.width(0);
14224                                {
14225                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14226                                    std::string ex(str, iter.base());
14227                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
14228                                    assert(ios.width() == 0);
14229                                }
14230                                ios.width(25);
14231                                left(ios);
14232                                {
14233                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14234                                    std::string ex(str, iter.base());
14235                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
14236                                    assert(ios.width() == 0);
14237                                }
14238                                ios.width(25);
14239                                right(ios);
14240                                {
14241                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14242                                    std::string ex(str, iter.base());
14243                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
14244                                    assert(ios.width() == 0);
14245                                }
14246                                ios.width(25);
14247                                internal(ios);
14248                                {
14249                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14250                                    std::string ex(str, iter.base());
14251                                    assert(ex == "+1.234567890125000000000000000000000000000000000000000000000000E+09");
14252                                    assert(ios.width() == 0);
14253                                }
14254                            }
14255                            ios.imbue(lg);
14256                            {
14257                                ios.width(0);
14258                                {
14259                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14260                                    std::string ex(str, iter.base());
14261                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
14262                                    assert(ios.width() == 0);
14263                                }
14264                                ios.width(25);
14265                                left(ios);
14266                                {
14267                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14268                                    std::string ex(str, iter.base());
14269                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
14270                                    assert(ios.width() == 0);
14271                                }
14272                                ios.width(25);
14273                                right(ios);
14274                                {
14275                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14276                                    std::string ex(str, iter.base());
14277                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
14278                                    assert(ios.width() == 0);
14279                                }
14280                                ios.width(25);
14281                                internal(ios);
14282                                {
14283                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14284                                    std::string ex(str, iter.base());
14285                                    assert(ex == "+1;234567890125000000000000000000000000000000000000000000000000E+09");
14286                                    assert(ios.width() == 0);
14287                                }
14288                            }
14289                        }
14290                    }
14291                }
14292            }
14293        }
14294    }
14295}
14296
14297void test7()
14298{
14299    char str[200];
14300    output_iterator<char*> iter;
14301    std::locale lc = std::locale::classic();
14302    std::locale lg(lc, new my_numpunct);
14303    const my_facet f(1);
14304    {
14305        double v = -0.;
14306        std::ios ios(0);
14307        hexfloat(ios);
14308        // %a
14309        {
14310            ios.precision(0);
14311            {
14312                nouppercase(ios);
14313                {
14314                    noshowpos(ios);
14315                    {
14316                        noshowpoint(ios);
14317                        {
14318                            ios.imbue(lc);
14319                            {
14320                                ios.width(0);
14321                                {
14322                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14323                                    std::string ex(str, iter.base());
14324                                    assert(ex == "-0x0p+0");
14325                                    assert(ios.width() == 0);
14326                                }
14327                                ios.width(25);
14328                                left(ios);
14329                                {
14330                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14331                                    std::string ex(str, iter.base());
14332                                    assert(ex == "-0x0p+0******************");
14333                                    assert(ios.width() == 0);
14334                                }
14335                                ios.width(25);
14336                                right(ios);
14337                                {
14338                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14339                                    std::string ex(str, iter.base());
14340                                    assert(ex == "******************-0x0p+0");
14341                                    assert(ios.width() == 0);
14342                                }
14343                                ios.width(25);
14344                                internal(ios);
14345                                {
14346                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14347                                    std::string ex(str, iter.base());
14348                                    assert(ex == "-******************0x0p+0");
14349                                    assert(ios.width() == 0);
14350                                }
14351                            }
14352                            ios.imbue(lg);
14353                            {
14354                                ios.width(0);
14355                                {
14356                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14357                                    std::string ex(str, iter.base());
14358                                    assert(ex == "-0x0p+0");
14359                                    assert(ios.width() == 0);
14360                                }
14361                                ios.width(25);
14362                                left(ios);
14363                                {
14364                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14365                                    std::string ex(str, iter.base());
14366                                    assert(ex == "-0x0p+0******************");
14367                                    assert(ios.width() == 0);
14368                                }
14369                                ios.width(25);
14370                                right(ios);
14371                                {
14372                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14373                                    std::string ex(str, iter.base());
14374                                    assert(ex == "******************-0x0p+0");
14375                                    assert(ios.width() == 0);
14376                                }
14377                                ios.width(25);
14378                                internal(ios);
14379                                {
14380                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14381                                    std::string ex(str, iter.base());
14382                                    assert(ex == "-******************0x0p+0");
14383                                    assert(ios.width() == 0);
14384                                }
14385                            }
14386                        }
14387                        showpoint(ios);
14388                        {
14389                            ios.imbue(lc);
14390                            {
14391                                ios.width(0);
14392                                {
14393                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14394                                    std::string ex(str, iter.base());
14395                                    assert(ex == "-0x0.p+0");
14396                                    assert(ios.width() == 0);
14397                                }
14398                                ios.width(25);
14399                                left(ios);
14400                                {
14401                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14402                                    std::string ex(str, iter.base());
14403                                    assert(ex == "-0x0.p+0*****************");
14404                                    assert(ios.width() == 0);
14405                                }
14406                                ios.width(25);
14407                                right(ios);
14408                                {
14409                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14410                                    std::string ex(str, iter.base());
14411                                    assert(ex == "*****************-0x0.p+0");
14412                                    assert(ios.width() == 0);
14413                                }
14414                                ios.width(25);
14415                                internal(ios);
14416                                {
14417                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14418                                    std::string ex(str, iter.base());
14419                                    assert(ex == "-*****************0x0.p+0");
14420                                    assert(ios.width() == 0);
14421                                }
14422                            }
14423                            ios.imbue(lg);
14424                            {
14425                                ios.width(0);
14426                                {
14427                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14428                                    std::string ex(str, iter.base());
14429                                    assert(ex == "-0x0;p+0");
14430                                    assert(ios.width() == 0);
14431                                }
14432                                ios.width(25);
14433                                left(ios);
14434                                {
14435                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14436                                    std::string ex(str, iter.base());
14437                                    assert(ex == "-0x0;p+0*****************");
14438                                    assert(ios.width() == 0);
14439                                }
14440                                ios.width(25);
14441                                right(ios);
14442                                {
14443                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14444                                    std::string ex(str, iter.base());
14445                                    assert(ex == "*****************-0x0;p+0");
14446                                    assert(ios.width() == 0);
14447                                }
14448                                ios.width(25);
14449                                internal(ios);
14450                                {
14451                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14452                                    std::string ex(str, iter.base());
14453                                    assert(ex == "-*****************0x0;p+0");
14454                                    assert(ios.width() == 0);
14455                                }
14456                            }
14457                        }
14458                    }
14459                    showpos(ios);
14460                    {
14461                        noshowpoint(ios);
14462                        {
14463                            ios.imbue(lc);
14464                            {
14465                                ios.width(0);
14466                                {
14467                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14468                                    std::string ex(str, iter.base());
14469                                    assert(ex == "-0x0p+0");
14470                                    assert(ios.width() == 0);
14471                                }
14472                                ios.width(25);
14473                                left(ios);
14474                                {
14475                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14476                                    std::string ex(str, iter.base());
14477                                    assert(ex == "-0x0p+0******************");
14478                                    assert(ios.width() == 0);
14479                                }
14480                                ios.width(25);
14481                                right(ios);
14482                                {
14483                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14484                                    std::string ex(str, iter.base());
14485                                    assert(ex == "******************-0x0p+0");
14486                                    assert(ios.width() == 0);
14487                                }
14488                                ios.width(25);
14489                                internal(ios);
14490                                {
14491                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14492                                    std::string ex(str, iter.base());
14493                                    assert(ex == "-******************0x0p+0");
14494                                    assert(ios.width() == 0);
14495                                }
14496                            }
14497                            ios.imbue(lg);
14498                            {
14499                                ios.width(0);
14500                                {
14501                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14502                                    std::string ex(str, iter.base());
14503                                    assert(ex == "-0x0p+0");
14504                                    assert(ios.width() == 0);
14505                                }
14506                                ios.width(25);
14507                                left(ios);
14508                                {
14509                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14510                                    std::string ex(str, iter.base());
14511                                    assert(ex == "-0x0p+0******************");
14512                                    assert(ios.width() == 0);
14513                                }
14514                                ios.width(25);
14515                                right(ios);
14516                                {
14517                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14518                                    std::string ex(str, iter.base());
14519                                    assert(ex == "******************-0x0p+0");
14520                                    assert(ios.width() == 0);
14521                                }
14522                                ios.width(25);
14523                                internal(ios);
14524                                {
14525                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14526                                    std::string ex(str, iter.base());
14527                                    assert(ex == "-******************0x0p+0");
14528                                    assert(ios.width() == 0);
14529                                }
14530                            }
14531                        }
14532                        showpoint(ios);
14533                        {
14534                            ios.imbue(lc);
14535                            {
14536                                ios.width(0);
14537                                {
14538                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14539                                    std::string ex(str, iter.base());
14540                                    assert(ex == "-0x0.p+0");
14541                                    assert(ios.width() == 0);
14542                                }
14543                                ios.width(25);
14544                                left(ios);
14545                                {
14546                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14547                                    std::string ex(str, iter.base());
14548                                    assert(ex == "-0x0.p+0*****************");
14549                                    assert(ios.width() == 0);
14550                                }
14551                                ios.width(25);
14552                                right(ios);
14553                                {
14554                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14555                                    std::string ex(str, iter.base());
14556                                    assert(ex == "*****************-0x0.p+0");
14557                                    assert(ios.width() == 0);
14558                                }
14559                                ios.width(25);
14560                                internal(ios);
14561                                {
14562                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14563                                    std::string ex(str, iter.base());
14564                                    assert(ex == "-*****************0x0.p+0");
14565                                    assert(ios.width() == 0);
14566                                }
14567                            }
14568                            ios.imbue(lg);
14569                            {
14570                                ios.width(0);
14571                                {
14572                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14573                                    std::string ex(str, iter.base());
14574                                    assert(ex == "-0x0;p+0");
14575                                    assert(ios.width() == 0);
14576                                }
14577                                ios.width(25);
14578                                left(ios);
14579                                {
14580                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14581                                    std::string ex(str, iter.base());
14582                                    assert(ex == "-0x0;p+0*****************");
14583                                    assert(ios.width() == 0);
14584                                }
14585                                ios.width(25);
14586                                right(ios);
14587                                {
14588                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14589                                    std::string ex(str, iter.base());
14590                                    assert(ex == "*****************-0x0;p+0");
14591                                    assert(ios.width() == 0);
14592                                }
14593                                ios.width(25);
14594                                internal(ios);
14595                                {
14596                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14597                                    std::string ex(str, iter.base());
14598                                    assert(ex == "-*****************0x0;p+0");
14599                                    assert(ios.width() == 0);
14600                                }
14601                            }
14602                        }
14603                    }
14604                }
14605                uppercase(ios);
14606                {
14607                    noshowpos(ios);
14608                    {
14609                        noshowpoint(ios);
14610                        {
14611                            ios.imbue(lc);
14612                            {
14613                                ios.width(0);
14614                                {
14615                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14616                                    std::string ex(str, iter.base());
14617                                    assert(ex == "-0X0P+0");
14618                                    assert(ios.width() == 0);
14619                                }
14620                                ios.width(25);
14621                                left(ios);
14622                                {
14623                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14624                                    std::string ex(str, iter.base());
14625                                    assert(ex == "-0X0P+0******************");
14626                                    assert(ios.width() == 0);
14627                                }
14628                                ios.width(25);
14629                                right(ios);
14630                                {
14631                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14632                                    std::string ex(str, iter.base());
14633                                    assert(ex == "******************-0X0P+0");
14634                                    assert(ios.width() == 0);
14635                                }
14636                                ios.width(25);
14637                                internal(ios);
14638                                {
14639                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14640                                    std::string ex(str, iter.base());
14641                                    assert(ex == "-******************0X0P+0");
14642                                    assert(ios.width() == 0);
14643                                }
14644                            }
14645                            ios.imbue(lg);
14646                            {
14647                                ios.width(0);
14648                                {
14649                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14650                                    std::string ex(str, iter.base());
14651                                    assert(ex == "-0X0P+0");
14652                                    assert(ios.width() == 0);
14653                                }
14654                                ios.width(25);
14655                                left(ios);
14656                                {
14657                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14658                                    std::string ex(str, iter.base());
14659                                    assert(ex == "-0X0P+0******************");
14660                                    assert(ios.width() == 0);
14661                                }
14662                                ios.width(25);
14663                                right(ios);
14664                                {
14665                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14666                                    std::string ex(str, iter.base());
14667                                    assert(ex == "******************-0X0P+0");
14668                                    assert(ios.width() == 0);
14669                                }
14670                                ios.width(25);
14671                                internal(ios);
14672                                {
14673                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14674                                    std::string ex(str, iter.base());
14675                                    assert(ex == "-******************0X0P+0");
14676                                    assert(ios.width() == 0);
14677                                }
14678                            }
14679                        }
14680                        showpoint(ios);
14681                        {
14682                            ios.imbue(lc);
14683                            {
14684                                ios.width(0);
14685                                {
14686                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14687                                    std::string ex(str, iter.base());
14688                                    assert(ex == "-0X0.P+0");
14689                                    assert(ios.width() == 0);
14690                                }
14691                                ios.width(25);
14692                                left(ios);
14693                                {
14694                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14695                                    std::string ex(str, iter.base());
14696                                    assert(ex == "-0X0.P+0*****************");
14697                                    assert(ios.width() == 0);
14698                                }
14699                                ios.width(25);
14700                                right(ios);
14701                                {
14702                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14703                                    std::string ex(str, iter.base());
14704                                    assert(ex == "*****************-0X0.P+0");
14705                                    assert(ios.width() == 0);
14706                                }
14707                                ios.width(25);
14708                                internal(ios);
14709                                {
14710                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14711                                    std::string ex(str, iter.base());
14712                                    assert(ex == "-*****************0X0.P+0");
14713                                    assert(ios.width() == 0);
14714                                }
14715                            }
14716                            ios.imbue(lg);
14717                            {
14718                                ios.width(0);
14719                                {
14720                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14721                                    std::string ex(str, iter.base());
14722                                    assert(ex == "-0X0;P+0");
14723                                    assert(ios.width() == 0);
14724                                }
14725                                ios.width(25);
14726                                left(ios);
14727                                {
14728                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14729                                    std::string ex(str, iter.base());
14730                                    assert(ex == "-0X0;P+0*****************");
14731                                    assert(ios.width() == 0);
14732                                }
14733                                ios.width(25);
14734                                right(ios);
14735                                {
14736                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14737                                    std::string ex(str, iter.base());
14738                                    assert(ex == "*****************-0X0;P+0");
14739                                    assert(ios.width() == 0);
14740                                }
14741                                ios.width(25);
14742                                internal(ios);
14743                                {
14744                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14745                                    std::string ex(str, iter.base());
14746                                    assert(ex == "-*****************0X0;P+0");
14747                                    assert(ios.width() == 0);
14748                                }
14749                            }
14750                        }
14751                    }
14752                    showpos(ios);
14753                    {
14754                        noshowpoint(ios);
14755                        {
14756                            ios.imbue(lc);
14757                            {
14758                                ios.width(0);
14759                                {
14760                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14761                                    std::string ex(str, iter.base());
14762                                    assert(ex == "-0X0P+0");
14763                                    assert(ios.width() == 0);
14764                                }
14765                                ios.width(25);
14766                                left(ios);
14767                                {
14768                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14769                                    std::string ex(str, iter.base());
14770                                    assert(ex == "-0X0P+0******************");
14771                                    assert(ios.width() == 0);
14772                                }
14773                                ios.width(25);
14774                                right(ios);
14775                                {
14776                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14777                                    std::string ex(str, iter.base());
14778                                    assert(ex == "******************-0X0P+0");
14779                                    assert(ios.width() == 0);
14780                                }
14781                                ios.width(25);
14782                                internal(ios);
14783                                {
14784                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14785                                    std::string ex(str, iter.base());
14786                                    assert(ex == "-******************0X0P+0");
14787                                    assert(ios.width() == 0);
14788                                }
14789                            }
14790                            ios.imbue(lg);
14791                            {
14792                                ios.width(0);
14793                                {
14794                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14795                                    std::string ex(str, iter.base());
14796                                    assert(ex == "-0X0P+0");
14797                                    assert(ios.width() == 0);
14798                                }
14799                                ios.width(25);
14800                                left(ios);
14801                                {
14802                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14803                                    std::string ex(str, iter.base());
14804                                    assert(ex == "-0X0P+0******************");
14805                                    assert(ios.width() == 0);
14806                                }
14807                                ios.width(25);
14808                                right(ios);
14809                                {
14810                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14811                                    std::string ex(str, iter.base());
14812                                    assert(ex == "******************-0X0P+0");
14813                                    assert(ios.width() == 0);
14814                                }
14815                                ios.width(25);
14816                                internal(ios);
14817                                {
14818                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14819                                    std::string ex(str, iter.base());
14820                                    assert(ex == "-******************0X0P+0");
14821                                    assert(ios.width() == 0);
14822                                }
14823                            }
14824                        }
14825                        showpoint(ios);
14826                        {
14827                            ios.imbue(lc);
14828                            {
14829                                ios.width(0);
14830                                {
14831                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14832                                    std::string ex(str, iter.base());
14833                                    assert(ex == "-0X0.P+0");
14834                                    assert(ios.width() == 0);
14835                                }
14836                                ios.width(25);
14837                                left(ios);
14838                                {
14839                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14840                                    std::string ex(str, iter.base());
14841                                    assert(ex == "-0X0.P+0*****************");
14842                                    assert(ios.width() == 0);
14843                                }
14844                                ios.width(25);
14845                                right(ios);
14846                                {
14847                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14848                                    std::string ex(str, iter.base());
14849                                    assert(ex == "*****************-0X0.P+0");
14850                                    assert(ios.width() == 0);
14851                                }
14852                                ios.width(25);
14853                                internal(ios);
14854                                {
14855                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14856                                    std::string ex(str, iter.base());
14857                                    assert(ex == "-*****************0X0.P+0");
14858                                    assert(ios.width() == 0);
14859                                }
14860                            }
14861                            ios.imbue(lg);
14862                            {
14863                                ios.width(0);
14864                                {
14865                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14866                                    std::string ex(str, iter.base());
14867                                    assert(ex == "-0X0;P+0");
14868                                    assert(ios.width() == 0);
14869                                }
14870                                ios.width(25);
14871                                left(ios);
14872                                {
14873                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14874                                    std::string ex(str, iter.base());
14875                                    assert(ex == "-0X0;P+0*****************");
14876                                    assert(ios.width() == 0);
14877                                }
14878                                ios.width(25);
14879                                right(ios);
14880                                {
14881                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14882                                    std::string ex(str, iter.base());
14883                                    assert(ex == "*****************-0X0;P+0");
14884                                    assert(ios.width() == 0);
14885                                }
14886                                ios.width(25);
14887                                internal(ios);
14888                                {
14889                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14890                                    std::string ex(str, iter.base());
14891                                    assert(ex == "-*****************0X0;P+0");
14892                                    assert(ios.width() == 0);
14893                                }
14894                            }
14895                        }
14896                    }
14897                }
14898            }
14899            ios.precision(1);
14900            {
14901                nouppercase(ios);
14902                {
14903                    noshowpos(ios);
14904                    {
14905                        noshowpoint(ios);
14906                        {
14907                            ios.imbue(lc);
14908                            {
14909                                ios.width(0);
14910                                {
14911                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14912                                    std::string ex(str, iter.base());
14913                                    assert(ex == "-0x0p+0");
14914                                    assert(ios.width() == 0);
14915                                }
14916                                ios.width(25);
14917                                left(ios);
14918                                {
14919                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14920                                    std::string ex(str, iter.base());
14921                                    assert(ex == "-0x0p+0******************");
14922                                    assert(ios.width() == 0);
14923                                }
14924                                ios.width(25);
14925                                right(ios);
14926                                {
14927                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14928                                    std::string ex(str, iter.base());
14929                                    assert(ex == "******************-0x0p+0");
14930                                    assert(ios.width() == 0);
14931                                }
14932                                ios.width(25);
14933                                internal(ios);
14934                                {
14935                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14936                                    std::string ex(str, iter.base());
14937                                    assert(ex == "-******************0x0p+0");
14938                                    assert(ios.width() == 0);
14939                                }
14940                            }
14941                            ios.imbue(lg);
14942                            {
14943                                ios.width(0);
14944                                {
14945                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14946                                    std::string ex(str, iter.base());
14947                                    assert(ex == "-0x0p+0");
14948                                    assert(ios.width() == 0);
14949                                }
14950                                ios.width(25);
14951                                left(ios);
14952                                {
14953                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14954                                    std::string ex(str, iter.base());
14955                                    assert(ex == "-0x0p+0******************");
14956                                    assert(ios.width() == 0);
14957                                }
14958                                ios.width(25);
14959                                right(ios);
14960                                {
14961                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14962                                    std::string ex(str, iter.base());
14963                                    assert(ex == "******************-0x0p+0");
14964                                    assert(ios.width() == 0);
14965                                }
14966                                ios.width(25);
14967                                internal(ios);
14968                                {
14969                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14970                                    std::string ex(str, iter.base());
14971                                    assert(ex == "-******************0x0p+0");
14972                                    assert(ios.width() == 0);
14973                                }
14974                            }
14975                        }
14976                        showpoint(ios);
14977                        {
14978                            ios.imbue(lc);
14979                            {
14980                                ios.width(0);
14981                                {
14982                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14983                                    std::string ex(str, iter.base());
14984                                    assert(ex == "-0x0.p+0");
14985                                    assert(ios.width() == 0);
14986                                }
14987                                ios.width(25);
14988                                left(ios);
14989                                {
14990                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14991                                    std::string ex(str, iter.base());
14992                                    assert(ex == "-0x0.p+0*****************");
14993                                    assert(ios.width() == 0);
14994                                }
14995                                ios.width(25);
14996                                right(ios);
14997                                {
14998                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
14999                                    std::string ex(str, iter.base());
15000                                    assert(ex == "*****************-0x0.p+0");
15001                                    assert(ios.width() == 0);
15002                                }
15003                                ios.width(25);
15004                                internal(ios);
15005                                {
15006                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15007                                    std::string ex(str, iter.base());
15008                                    assert(ex == "-*****************0x0.p+0");
15009                                    assert(ios.width() == 0);
15010                                }
15011                            }
15012                            ios.imbue(lg);
15013                            {
15014                                ios.width(0);
15015                                {
15016                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15017                                    std::string ex(str, iter.base());
15018                                    assert(ex == "-0x0;p+0");
15019                                    assert(ios.width() == 0);
15020                                }
15021                                ios.width(25);
15022                                left(ios);
15023                                {
15024                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15025                                    std::string ex(str, iter.base());
15026                                    assert(ex == "-0x0;p+0*****************");
15027                                    assert(ios.width() == 0);
15028                                }
15029                                ios.width(25);
15030                                right(ios);
15031                                {
15032                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15033                                    std::string ex(str, iter.base());
15034                                    assert(ex == "*****************-0x0;p+0");
15035                                    assert(ios.width() == 0);
15036                                }
15037                                ios.width(25);
15038                                internal(ios);
15039                                {
15040                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15041                                    std::string ex(str, iter.base());
15042                                    assert(ex == "-*****************0x0;p+0");
15043                                    assert(ios.width() == 0);
15044                                }
15045                            }
15046                        }
15047                    }
15048                    showpos(ios);
15049                    {
15050                        noshowpoint(ios);
15051                        {
15052                            ios.imbue(lc);
15053                            {
15054                                ios.width(0);
15055                                {
15056                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15057                                    std::string ex(str, iter.base());
15058                                    assert(ex == "-0x0p+0");
15059                                    assert(ios.width() == 0);
15060                                }
15061                                ios.width(25);
15062                                left(ios);
15063                                {
15064                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15065                                    std::string ex(str, iter.base());
15066                                    assert(ex == "-0x0p+0******************");
15067                                    assert(ios.width() == 0);
15068                                }
15069                                ios.width(25);
15070                                right(ios);
15071                                {
15072                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15073                                    std::string ex(str, iter.base());
15074                                    assert(ex == "******************-0x0p+0");
15075                                    assert(ios.width() == 0);
15076                                }
15077                                ios.width(25);
15078                                internal(ios);
15079                                {
15080                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15081                                    std::string ex(str, iter.base());
15082                                    assert(ex == "-******************0x0p+0");
15083                                    assert(ios.width() == 0);
15084                                }
15085                            }
15086                            ios.imbue(lg);
15087                            {
15088                                ios.width(0);
15089                                {
15090                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15091                                    std::string ex(str, iter.base());
15092                                    assert(ex == "-0x0p+0");
15093                                    assert(ios.width() == 0);
15094                                }
15095                                ios.width(25);
15096                                left(ios);
15097                                {
15098                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15099                                    std::string ex(str, iter.base());
15100                                    assert(ex == "-0x0p+0******************");
15101                                    assert(ios.width() == 0);
15102                                }
15103                                ios.width(25);
15104                                right(ios);
15105                                {
15106                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15107                                    std::string ex(str, iter.base());
15108                                    assert(ex == "******************-0x0p+0");
15109                                    assert(ios.width() == 0);
15110                                }
15111                                ios.width(25);
15112                                internal(ios);
15113                                {
15114                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15115                                    std::string ex(str, iter.base());
15116                                    assert(ex == "-******************0x0p+0");
15117                                    assert(ios.width() == 0);
15118                                }
15119                            }
15120                        }
15121                        showpoint(ios);
15122                        {
15123                            ios.imbue(lc);
15124                            {
15125                                ios.width(0);
15126                                {
15127                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15128                                    std::string ex(str, iter.base());
15129                                    assert(ex == "-0x0.p+0");
15130                                    assert(ios.width() == 0);
15131                                }
15132                                ios.width(25);
15133                                left(ios);
15134                                {
15135                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15136                                    std::string ex(str, iter.base());
15137                                    assert(ex == "-0x0.p+0*****************");
15138                                    assert(ios.width() == 0);
15139                                }
15140                                ios.width(25);
15141                                right(ios);
15142                                {
15143                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15144                                    std::string ex(str, iter.base());
15145                                    assert(ex == "*****************-0x0.p+0");
15146                                    assert(ios.width() == 0);
15147                                }
15148                                ios.width(25);
15149                                internal(ios);
15150                                {
15151                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15152                                    std::string ex(str, iter.base());
15153                                    assert(ex == "-*****************0x0.p+0");
15154                                    assert(ios.width() == 0);
15155                                }
15156                            }
15157                            ios.imbue(lg);
15158                            {
15159                                ios.width(0);
15160                                {
15161                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15162                                    std::string ex(str, iter.base());
15163                                    assert(ex == "-0x0;p+0");
15164                                    assert(ios.width() == 0);
15165                                }
15166                                ios.width(25);
15167                                left(ios);
15168                                {
15169                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15170                                    std::string ex(str, iter.base());
15171                                    assert(ex == "-0x0;p+0*****************");
15172                                    assert(ios.width() == 0);
15173                                }
15174                                ios.width(25);
15175                                right(ios);
15176                                {
15177                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15178                                    std::string ex(str, iter.base());
15179                                    assert(ex == "*****************-0x0;p+0");
15180                                    assert(ios.width() == 0);
15181                                }
15182                                ios.width(25);
15183                                internal(ios);
15184                                {
15185                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15186                                    std::string ex(str, iter.base());
15187                                    assert(ex == "-*****************0x0;p+0");
15188                                    assert(ios.width() == 0);
15189                                }
15190                            }
15191                        }
15192                    }
15193                }
15194                uppercase(ios);
15195                {
15196                    noshowpos(ios);
15197                    {
15198                        noshowpoint(ios);
15199                        {
15200                            ios.imbue(lc);
15201                            {
15202                                ios.width(0);
15203                                {
15204                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15205                                    std::string ex(str, iter.base());
15206                                    assert(ex == "-0X0P+0");
15207                                    assert(ios.width() == 0);
15208                                }
15209                                ios.width(25);
15210                                left(ios);
15211                                {
15212                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15213                                    std::string ex(str, iter.base());
15214                                    assert(ex == "-0X0P+0******************");
15215                                    assert(ios.width() == 0);
15216                                }
15217                                ios.width(25);
15218                                right(ios);
15219                                {
15220                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15221                                    std::string ex(str, iter.base());
15222                                    assert(ex == "******************-0X0P+0");
15223                                    assert(ios.width() == 0);
15224                                }
15225                                ios.width(25);
15226                                internal(ios);
15227                                {
15228                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15229                                    std::string ex(str, iter.base());
15230                                    assert(ex == "-******************0X0P+0");
15231                                    assert(ios.width() == 0);
15232                                }
15233                            }
15234                            ios.imbue(lg);
15235                            {
15236                                ios.width(0);
15237                                {
15238                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15239                                    std::string ex(str, iter.base());
15240                                    assert(ex == "-0X0P+0");
15241                                    assert(ios.width() == 0);
15242                                }
15243                                ios.width(25);
15244                                left(ios);
15245                                {
15246                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15247                                    std::string ex(str, iter.base());
15248                                    assert(ex == "-0X0P+0******************");
15249                                    assert(ios.width() == 0);
15250                                }
15251                                ios.width(25);
15252                                right(ios);
15253                                {
15254                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15255                                    std::string ex(str, iter.base());
15256                                    assert(ex == "******************-0X0P+0");
15257                                    assert(ios.width() == 0);
15258                                }
15259                                ios.width(25);
15260                                internal(ios);
15261                                {
15262                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15263                                    std::string ex(str, iter.base());
15264                                    assert(ex == "-******************0X0P+0");
15265                                    assert(ios.width() == 0);
15266                                }
15267                            }
15268                        }
15269                        showpoint(ios);
15270                        {
15271                            ios.imbue(lc);
15272                            {
15273                                ios.width(0);
15274                                {
15275                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15276                                    std::string ex(str, iter.base());
15277                                    assert(ex == "-0X0.P+0");
15278                                    assert(ios.width() == 0);
15279                                }
15280                                ios.width(25);
15281                                left(ios);
15282                                {
15283                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15284                                    std::string ex(str, iter.base());
15285                                    assert(ex == "-0X0.P+0*****************");
15286                                    assert(ios.width() == 0);
15287                                }
15288                                ios.width(25);
15289                                right(ios);
15290                                {
15291                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15292                                    std::string ex(str, iter.base());
15293                                    assert(ex == "*****************-0X0.P+0");
15294                                    assert(ios.width() == 0);
15295                                }
15296                                ios.width(25);
15297                                internal(ios);
15298                                {
15299                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15300                                    std::string ex(str, iter.base());
15301                                    assert(ex == "-*****************0X0.P+0");
15302                                    assert(ios.width() == 0);
15303                                }
15304                            }
15305                            ios.imbue(lg);
15306                            {
15307                                ios.width(0);
15308                                {
15309                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15310                                    std::string ex(str, iter.base());
15311                                    assert(ex == "-0X0;P+0");
15312                                    assert(ios.width() == 0);
15313                                }
15314                                ios.width(25);
15315                                left(ios);
15316                                {
15317                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15318                                    std::string ex(str, iter.base());
15319                                    assert(ex == "-0X0;P+0*****************");
15320                                    assert(ios.width() == 0);
15321                                }
15322                                ios.width(25);
15323                                right(ios);
15324                                {
15325                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15326                                    std::string ex(str, iter.base());
15327                                    assert(ex == "*****************-0X0;P+0");
15328                                    assert(ios.width() == 0);
15329                                }
15330                                ios.width(25);
15331                                internal(ios);
15332                                {
15333                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15334                                    std::string ex(str, iter.base());
15335                                    assert(ex == "-*****************0X0;P+0");
15336                                    assert(ios.width() == 0);
15337                                }
15338                            }
15339                        }
15340                    }
15341                    showpos(ios);
15342                    {
15343                        noshowpoint(ios);
15344                        {
15345                            ios.imbue(lc);
15346                            {
15347                                ios.width(0);
15348                                {
15349                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15350                                    std::string ex(str, iter.base());
15351                                    assert(ex == "-0X0P+0");
15352                                    assert(ios.width() == 0);
15353                                }
15354                                ios.width(25);
15355                                left(ios);
15356                                {
15357                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15358                                    std::string ex(str, iter.base());
15359                                    assert(ex == "-0X0P+0******************");
15360                                    assert(ios.width() == 0);
15361                                }
15362                                ios.width(25);
15363                                right(ios);
15364                                {
15365                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15366                                    std::string ex(str, iter.base());
15367                                    assert(ex == "******************-0X0P+0");
15368                                    assert(ios.width() == 0);
15369                                }
15370                                ios.width(25);
15371                                internal(ios);
15372                                {
15373                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15374                                    std::string ex(str, iter.base());
15375                                    assert(ex == "-******************0X0P+0");
15376                                    assert(ios.width() == 0);
15377                                }
15378                            }
15379                            ios.imbue(lg);
15380                            {
15381                                ios.width(0);
15382                                {
15383                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15384                                    std::string ex(str, iter.base());
15385                                    assert(ex == "-0X0P+0");
15386                                    assert(ios.width() == 0);
15387                                }
15388                                ios.width(25);
15389                                left(ios);
15390                                {
15391                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15392                                    std::string ex(str, iter.base());
15393                                    assert(ex == "-0X0P+0******************");
15394                                    assert(ios.width() == 0);
15395                                }
15396                                ios.width(25);
15397                                right(ios);
15398                                {
15399                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15400                                    std::string ex(str, iter.base());
15401                                    assert(ex == "******************-0X0P+0");
15402                                    assert(ios.width() == 0);
15403                                }
15404                                ios.width(25);
15405                                internal(ios);
15406                                {
15407                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15408                                    std::string ex(str, iter.base());
15409                                    assert(ex == "-******************0X0P+0");
15410                                    assert(ios.width() == 0);
15411                                }
15412                            }
15413                        }
15414                        showpoint(ios);
15415                        {
15416                            ios.imbue(lc);
15417                            {
15418                                ios.width(0);
15419                                {
15420                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15421                                    std::string ex(str, iter.base());
15422                                    assert(ex == "-0X0.P+0");
15423                                    assert(ios.width() == 0);
15424                                }
15425                                ios.width(25);
15426                                left(ios);
15427                                {
15428                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15429                                    std::string ex(str, iter.base());
15430                                    assert(ex == "-0X0.P+0*****************");
15431                                    assert(ios.width() == 0);
15432                                }
15433                                ios.width(25);
15434                                right(ios);
15435                                {
15436                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15437                                    std::string ex(str, iter.base());
15438                                    assert(ex == "*****************-0X0.P+0");
15439                                    assert(ios.width() == 0);
15440                                }
15441                                ios.width(25);
15442                                internal(ios);
15443                                {
15444                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15445                                    std::string ex(str, iter.base());
15446                                    assert(ex == "-*****************0X0.P+0");
15447                                    assert(ios.width() == 0);
15448                                }
15449                            }
15450                            ios.imbue(lg);
15451                            {
15452                                ios.width(0);
15453                                {
15454                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15455                                    std::string ex(str, iter.base());
15456                                    assert(ex == "-0X0;P+0");
15457                                    assert(ios.width() == 0);
15458                                }
15459                                ios.width(25);
15460                                left(ios);
15461                                {
15462                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15463                                    std::string ex(str, iter.base());
15464                                    assert(ex == "-0X0;P+0*****************");
15465                                    assert(ios.width() == 0);
15466                                }
15467                                ios.width(25);
15468                                right(ios);
15469                                {
15470                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15471                                    std::string ex(str, iter.base());
15472                                    assert(ex == "*****************-0X0;P+0");
15473                                    assert(ios.width() == 0);
15474                                }
15475                                ios.width(25);
15476                                internal(ios);
15477                                {
15478                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15479                                    std::string ex(str, iter.base());
15480                                    assert(ex == "-*****************0X0;P+0");
15481                                    assert(ios.width() == 0);
15482                                }
15483                            }
15484                        }
15485                    }
15486                }
15487            }
15488            ios.precision(6);
15489            {
15490                nouppercase(ios);
15491                {
15492                    noshowpos(ios);
15493                    {
15494                        noshowpoint(ios);
15495                        {
15496                            ios.imbue(lc);
15497                            {
15498                                ios.width(0);
15499                                {
15500                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15501                                    std::string ex(str, iter.base());
15502                                    assert(ex == "-0x0p+0");
15503                                    assert(ios.width() == 0);
15504                                }
15505                                ios.width(25);
15506                                left(ios);
15507                                {
15508                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15509                                    std::string ex(str, iter.base());
15510                                    assert(ex == "-0x0p+0******************");
15511                                    assert(ios.width() == 0);
15512                                }
15513                                ios.width(25);
15514                                right(ios);
15515                                {
15516                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15517                                    std::string ex(str, iter.base());
15518                                    assert(ex == "******************-0x0p+0");
15519                                    assert(ios.width() == 0);
15520                                }
15521                                ios.width(25);
15522                                internal(ios);
15523                                {
15524                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15525                                    std::string ex(str, iter.base());
15526                                    assert(ex == "-******************0x0p+0");
15527                                    assert(ios.width() == 0);
15528                                }
15529                            }
15530                            ios.imbue(lg);
15531                            {
15532                                ios.width(0);
15533                                {
15534                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15535                                    std::string ex(str, iter.base());
15536                                    assert(ex == "-0x0p+0");
15537                                    assert(ios.width() == 0);
15538                                }
15539                                ios.width(25);
15540                                left(ios);
15541                                {
15542                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15543                                    std::string ex(str, iter.base());
15544                                    assert(ex == "-0x0p+0******************");
15545                                    assert(ios.width() == 0);
15546                                }
15547                                ios.width(25);
15548                                right(ios);
15549                                {
15550                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15551                                    std::string ex(str, iter.base());
15552                                    assert(ex == "******************-0x0p+0");
15553                                    assert(ios.width() == 0);
15554                                }
15555                                ios.width(25);
15556                                internal(ios);
15557                                {
15558                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15559                                    std::string ex(str, iter.base());
15560                                    assert(ex == "-******************0x0p+0");
15561                                    assert(ios.width() == 0);
15562                                }
15563                            }
15564                        }
15565                        showpoint(ios);
15566                        {
15567                            ios.imbue(lc);
15568                            {
15569                                ios.width(0);
15570                                {
15571                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15572                                    std::string ex(str, iter.base());
15573                                    assert(ex == "-0x0.p+0");
15574                                    assert(ios.width() == 0);
15575                                }
15576                                ios.width(25);
15577                                left(ios);
15578                                {
15579                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15580                                    std::string ex(str, iter.base());
15581                                    assert(ex == "-0x0.p+0*****************");
15582                                    assert(ios.width() == 0);
15583                                }
15584                                ios.width(25);
15585                                right(ios);
15586                                {
15587                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15588                                    std::string ex(str, iter.base());
15589                                    assert(ex == "*****************-0x0.p+0");
15590                                    assert(ios.width() == 0);
15591                                }
15592                                ios.width(25);
15593                                internal(ios);
15594                                {
15595                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15596                                    std::string ex(str, iter.base());
15597                                    assert(ex == "-*****************0x0.p+0");
15598                                    assert(ios.width() == 0);
15599                                }
15600                            }
15601                            ios.imbue(lg);
15602                            {
15603                                ios.width(0);
15604                                {
15605                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15606                                    std::string ex(str, iter.base());
15607                                    assert(ex == "-0x0;p+0");
15608                                    assert(ios.width() == 0);
15609                                }
15610                                ios.width(25);
15611                                left(ios);
15612                                {
15613                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15614                                    std::string ex(str, iter.base());
15615                                    assert(ex == "-0x0;p+0*****************");
15616                                    assert(ios.width() == 0);
15617                                }
15618                                ios.width(25);
15619                                right(ios);
15620                                {
15621                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15622                                    std::string ex(str, iter.base());
15623                                    assert(ex == "*****************-0x0;p+0");
15624                                    assert(ios.width() == 0);
15625                                }
15626                                ios.width(25);
15627                                internal(ios);
15628                                {
15629                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15630                                    std::string ex(str, iter.base());
15631                                    assert(ex == "-*****************0x0;p+0");
15632                                    assert(ios.width() == 0);
15633                                }
15634                            }
15635                        }
15636                    }
15637                    showpos(ios);
15638                    {
15639                        noshowpoint(ios);
15640                        {
15641                            ios.imbue(lc);
15642                            {
15643                                ios.width(0);
15644                                {
15645                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15646                                    std::string ex(str, iter.base());
15647                                    assert(ex == "-0x0p+0");
15648                                    assert(ios.width() == 0);
15649                                }
15650                                ios.width(25);
15651                                left(ios);
15652                                {
15653                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15654                                    std::string ex(str, iter.base());
15655                                    assert(ex == "-0x0p+0******************");
15656                                    assert(ios.width() == 0);
15657                                }
15658                                ios.width(25);
15659                                right(ios);
15660                                {
15661                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15662                                    std::string ex(str, iter.base());
15663                                    assert(ex == "******************-0x0p+0");
15664                                    assert(ios.width() == 0);
15665                                }
15666                                ios.width(25);
15667                                internal(ios);
15668                                {
15669                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15670                                    std::string ex(str, iter.base());
15671                                    assert(ex == "-******************0x0p+0");
15672                                    assert(ios.width() == 0);
15673                                }
15674                            }
15675                            ios.imbue(lg);
15676                            {
15677                                ios.width(0);
15678                                {
15679                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15680                                    std::string ex(str, iter.base());
15681                                    assert(ex == "-0x0p+0");
15682                                    assert(ios.width() == 0);
15683                                }
15684                                ios.width(25);
15685                                left(ios);
15686                                {
15687                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15688                                    std::string ex(str, iter.base());
15689                                    assert(ex == "-0x0p+0******************");
15690                                    assert(ios.width() == 0);
15691                                }
15692                                ios.width(25);
15693                                right(ios);
15694                                {
15695                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15696                                    std::string ex(str, iter.base());
15697                                    assert(ex == "******************-0x0p+0");
15698                                    assert(ios.width() == 0);
15699                                }
15700                                ios.width(25);
15701                                internal(ios);
15702                                {
15703                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15704                                    std::string ex(str, iter.base());
15705                                    assert(ex == "-******************0x0p+0");
15706                                    assert(ios.width() == 0);
15707                                }
15708                            }
15709                        }
15710                        showpoint(ios);
15711                        {
15712                            ios.imbue(lc);
15713                            {
15714                                ios.width(0);
15715                                {
15716                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15717                                    std::string ex(str, iter.base());
15718                                    assert(ex == "-0x0.p+0");
15719                                    assert(ios.width() == 0);
15720                                }
15721                                ios.width(25);
15722                                left(ios);
15723                                {
15724                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15725                                    std::string ex(str, iter.base());
15726                                    assert(ex == "-0x0.p+0*****************");
15727                                    assert(ios.width() == 0);
15728                                }
15729                                ios.width(25);
15730                                right(ios);
15731                                {
15732                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15733                                    std::string ex(str, iter.base());
15734                                    assert(ex == "*****************-0x0.p+0");
15735                                    assert(ios.width() == 0);
15736                                }
15737                                ios.width(25);
15738                                internal(ios);
15739                                {
15740                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15741                                    std::string ex(str, iter.base());
15742                                    assert(ex == "-*****************0x0.p+0");
15743                                    assert(ios.width() == 0);
15744                                }
15745                            }
15746                            ios.imbue(lg);
15747                            {
15748                                ios.width(0);
15749                                {
15750                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15751                                    std::string ex(str, iter.base());
15752                                    assert(ex == "-0x0;p+0");
15753                                    assert(ios.width() == 0);
15754                                }
15755                                ios.width(25);
15756                                left(ios);
15757                                {
15758                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15759                                    std::string ex(str, iter.base());
15760                                    assert(ex == "-0x0;p+0*****************");
15761                                    assert(ios.width() == 0);
15762                                }
15763                                ios.width(25);
15764                                right(ios);
15765                                {
15766                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15767                                    std::string ex(str, iter.base());
15768                                    assert(ex == "*****************-0x0;p+0");
15769                                    assert(ios.width() == 0);
15770                                }
15771                                ios.width(25);
15772                                internal(ios);
15773                                {
15774                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15775                                    std::string ex(str, iter.base());
15776                                    assert(ex == "-*****************0x0;p+0");
15777                                    assert(ios.width() == 0);
15778                                }
15779                            }
15780                        }
15781                    }
15782                }
15783                uppercase(ios);
15784                {
15785                    noshowpos(ios);
15786                    {
15787                        noshowpoint(ios);
15788                        {
15789                            ios.imbue(lc);
15790                            {
15791                                ios.width(0);
15792                                {
15793                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15794                                    std::string ex(str, iter.base());
15795                                    assert(ex == "-0X0P+0");
15796                                    assert(ios.width() == 0);
15797                                }
15798                                ios.width(25);
15799                                left(ios);
15800                                {
15801                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15802                                    std::string ex(str, iter.base());
15803                                    assert(ex == "-0X0P+0******************");
15804                                    assert(ios.width() == 0);
15805                                }
15806                                ios.width(25);
15807                                right(ios);
15808                                {
15809                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15810                                    std::string ex(str, iter.base());
15811                                    assert(ex == "******************-0X0P+0");
15812                                    assert(ios.width() == 0);
15813                                }
15814                                ios.width(25);
15815                                internal(ios);
15816                                {
15817                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15818                                    std::string ex(str, iter.base());
15819                                    assert(ex == "-******************0X0P+0");
15820                                    assert(ios.width() == 0);
15821                                }
15822                            }
15823                            ios.imbue(lg);
15824                            {
15825                                ios.width(0);
15826                                {
15827                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15828                                    std::string ex(str, iter.base());
15829                                    assert(ex == "-0X0P+0");
15830                                    assert(ios.width() == 0);
15831                                }
15832                                ios.width(25);
15833                                left(ios);
15834                                {
15835                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15836                                    std::string ex(str, iter.base());
15837                                    assert(ex == "-0X0P+0******************");
15838                                    assert(ios.width() == 0);
15839                                }
15840                                ios.width(25);
15841                                right(ios);
15842                                {
15843                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15844                                    std::string ex(str, iter.base());
15845                                    assert(ex == "******************-0X0P+0");
15846                                    assert(ios.width() == 0);
15847                                }
15848                                ios.width(25);
15849                                internal(ios);
15850                                {
15851                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15852                                    std::string ex(str, iter.base());
15853                                    assert(ex == "-******************0X0P+0");
15854                                    assert(ios.width() == 0);
15855                                }
15856                            }
15857                        }
15858                        showpoint(ios);
15859                        {
15860                            ios.imbue(lc);
15861                            {
15862                                ios.width(0);
15863                                {
15864                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15865                                    std::string ex(str, iter.base());
15866                                    assert(ex == "-0X0.P+0");
15867                                    assert(ios.width() == 0);
15868                                }
15869                                ios.width(25);
15870                                left(ios);
15871                                {
15872                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15873                                    std::string ex(str, iter.base());
15874                                    assert(ex == "-0X0.P+0*****************");
15875                                    assert(ios.width() == 0);
15876                                }
15877                                ios.width(25);
15878                                right(ios);
15879                                {
15880                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15881                                    std::string ex(str, iter.base());
15882                                    assert(ex == "*****************-0X0.P+0");
15883                                    assert(ios.width() == 0);
15884                                }
15885                                ios.width(25);
15886                                internal(ios);
15887                                {
15888                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15889                                    std::string ex(str, iter.base());
15890                                    assert(ex == "-*****************0X0.P+0");
15891                                    assert(ios.width() == 0);
15892                                }
15893                            }
15894                            ios.imbue(lg);
15895                            {
15896                                ios.width(0);
15897                                {
15898                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15899                                    std::string ex(str, iter.base());
15900                                    assert(ex == "-0X0;P+0");
15901                                    assert(ios.width() == 0);
15902                                }
15903                                ios.width(25);
15904                                left(ios);
15905                                {
15906                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15907                                    std::string ex(str, iter.base());
15908                                    assert(ex == "-0X0;P+0*****************");
15909                                    assert(ios.width() == 0);
15910                                }
15911                                ios.width(25);
15912                                right(ios);
15913                                {
15914                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15915                                    std::string ex(str, iter.base());
15916                                    assert(ex == "*****************-0X0;P+0");
15917                                    assert(ios.width() == 0);
15918                                }
15919                                ios.width(25);
15920                                internal(ios);
15921                                {
15922                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15923                                    std::string ex(str, iter.base());
15924                                    assert(ex == "-*****************0X0;P+0");
15925                                    assert(ios.width() == 0);
15926                                }
15927                            }
15928                        }
15929                    }
15930                    showpos(ios);
15931                    {
15932                        noshowpoint(ios);
15933                        {
15934                            ios.imbue(lc);
15935                            {
15936                                ios.width(0);
15937                                {
15938                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15939                                    std::string ex(str, iter.base());
15940                                    assert(ex == "-0X0P+0");
15941                                    assert(ios.width() == 0);
15942                                }
15943                                ios.width(25);
15944                                left(ios);
15945                                {
15946                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15947                                    std::string ex(str, iter.base());
15948                                    assert(ex == "-0X0P+0******************");
15949                                    assert(ios.width() == 0);
15950                                }
15951                                ios.width(25);
15952                                right(ios);
15953                                {
15954                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15955                                    std::string ex(str, iter.base());
15956                                    assert(ex == "******************-0X0P+0");
15957                                    assert(ios.width() == 0);
15958                                }
15959                                ios.width(25);
15960                                internal(ios);
15961                                {
15962                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15963                                    std::string ex(str, iter.base());
15964                                    assert(ex == "-******************0X0P+0");
15965                                    assert(ios.width() == 0);
15966                                }
15967                            }
15968                            ios.imbue(lg);
15969                            {
15970                                ios.width(0);
15971                                {
15972                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15973                                    std::string ex(str, iter.base());
15974                                    assert(ex == "-0X0P+0");
15975                                    assert(ios.width() == 0);
15976                                }
15977                                ios.width(25);
15978                                left(ios);
15979                                {
15980                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15981                                    std::string ex(str, iter.base());
15982                                    assert(ex == "-0X0P+0******************");
15983                                    assert(ios.width() == 0);
15984                                }
15985                                ios.width(25);
15986                                right(ios);
15987                                {
15988                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15989                                    std::string ex(str, iter.base());
15990                                    assert(ex == "******************-0X0P+0");
15991                                    assert(ios.width() == 0);
15992                                }
15993                                ios.width(25);
15994                                internal(ios);
15995                                {
15996                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
15997                                    std::string ex(str, iter.base());
15998                                    assert(ex == "-******************0X0P+0");
15999                                    assert(ios.width() == 0);
16000                                }
16001                            }
16002                        }
16003                        showpoint(ios);
16004                        {
16005                            ios.imbue(lc);
16006                            {
16007                                ios.width(0);
16008                                {
16009                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16010                                    std::string ex(str, iter.base());
16011                                    assert(ex == "-0X0.P+0");
16012                                    assert(ios.width() == 0);
16013                                }
16014                                ios.width(25);
16015                                left(ios);
16016                                {
16017                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16018                                    std::string ex(str, iter.base());
16019                                    assert(ex == "-0X0.P+0*****************");
16020                                    assert(ios.width() == 0);
16021                                }
16022                                ios.width(25);
16023                                right(ios);
16024                                {
16025                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16026                                    std::string ex(str, iter.base());
16027                                    assert(ex == "*****************-0X0.P+0");
16028                                    assert(ios.width() == 0);
16029                                }
16030                                ios.width(25);
16031                                internal(ios);
16032                                {
16033                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16034                                    std::string ex(str, iter.base());
16035                                    assert(ex == "-*****************0X0.P+0");
16036                                    assert(ios.width() == 0);
16037                                }
16038                            }
16039                            ios.imbue(lg);
16040                            {
16041                                ios.width(0);
16042                                {
16043                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16044                                    std::string ex(str, iter.base());
16045                                    assert(ex == "-0X0;P+0");
16046                                    assert(ios.width() == 0);
16047                                }
16048                                ios.width(25);
16049                                left(ios);
16050                                {
16051                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16052                                    std::string ex(str, iter.base());
16053                                    assert(ex == "-0X0;P+0*****************");
16054                                    assert(ios.width() == 0);
16055                                }
16056                                ios.width(25);
16057                                right(ios);
16058                                {
16059                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16060                                    std::string ex(str, iter.base());
16061                                    assert(ex == "*****************-0X0;P+0");
16062                                    assert(ios.width() == 0);
16063                                }
16064                                ios.width(25);
16065                                internal(ios);
16066                                {
16067                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16068                                    std::string ex(str, iter.base());
16069                                    assert(ex == "-*****************0X0;P+0");
16070                                    assert(ios.width() == 0);
16071                                }
16072                            }
16073                        }
16074                    }
16075                }
16076            }
16077            ios.precision(16);
16078            {
16079            }
16080            ios.precision(60);
16081            {
16082            }
16083        }
16084    }
16085}
16086
16087void test8()
16088{
16089    char str[200];
16090    output_iterator<char*> iter;
16091    std::locale lc = std::locale::classic();
16092    std::locale lg(lc, new my_numpunct);
16093    const my_facet f(1);
16094    {
16095        double v = 1234567890.125;
16096        std::ios ios(0);
16097        hexfloat(ios);
16098        // %a
16099        {
16100            ios.precision(0);
16101            {
16102                nouppercase(ios);
16103                {
16104                    noshowpos(ios);
16105                    {
16106                        noshowpoint(ios);
16107                        {
16108                            ios.imbue(lc);
16109                            {
16110                                ios.width(0);
16111                                {
16112                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16113                                    std::string ex(str, iter.base());
16114                                    assert(ex == "0x1.26580b488p+30");
16115                                    assert(ios.width() == 0);
16116                                }
16117                                ios.width(25);
16118                                left(ios);
16119                                {
16120                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16121                                    std::string ex(str, iter.base());
16122                                    assert(ex == "0x1.26580b488p+30********");
16123                                    assert(ios.width() == 0);
16124                                }
16125                                ios.width(25);
16126                                right(ios);
16127                                {
16128                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16129                                    std::string ex(str, iter.base());
16130                                    assert(ex == "********0x1.26580b488p+30");
16131                                    assert(ios.width() == 0);
16132                                }
16133                                ios.width(25);
16134                                internal(ios);
16135                                {
16136                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16137                                    std::string ex(str, iter.base());
16138                                    assert(ex == "0x********1.26580b488p+30");
16139                                    assert(ios.width() == 0);
16140                                }
16141                            }
16142                            ios.imbue(lg);
16143                            {
16144                                ios.width(0);
16145                                {
16146                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16147                                    std::string ex(str, iter.base());
16148                                    assert(ex == "0x1;26580b488p+30");
16149                                    assert(ios.width() == 0);
16150                                }
16151                                ios.width(25);
16152                                left(ios);
16153                                {
16154                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16155                                    std::string ex(str, iter.base());
16156                                    assert(ex == "0x1;26580b488p+30********");
16157                                    assert(ios.width() == 0);
16158                                }
16159                                ios.width(25);
16160                                right(ios);
16161                                {
16162                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16163                                    std::string ex(str, iter.base());
16164                                    assert(ex == "********0x1;26580b488p+30");
16165                                    assert(ios.width() == 0);
16166                                }
16167                                ios.width(25);
16168                                internal(ios);
16169                                {
16170                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16171                                    std::string ex(str, iter.base());
16172                                    assert(ex == "0x********1;26580b488p+30");
16173                                    assert(ios.width() == 0);
16174                                }
16175                            }
16176                        }
16177                        showpoint(ios);
16178                        {
16179                            ios.imbue(lc);
16180                            {
16181                                ios.width(0);
16182                                {
16183                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16184                                    std::string ex(str, iter.base());
16185                                    assert(ex == "0x1.26580b488p+30");
16186                                    assert(ios.width() == 0);
16187                                }
16188                                ios.width(25);
16189                                left(ios);
16190                                {
16191                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16192                                    std::string ex(str, iter.base());
16193                                    assert(ex == "0x1.26580b488p+30********");
16194                                    assert(ios.width() == 0);
16195                                }
16196                                ios.width(25);
16197                                right(ios);
16198                                {
16199                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16200                                    std::string ex(str, iter.base());
16201                                    assert(ex == "********0x1.26580b488p+30");
16202                                    assert(ios.width() == 0);
16203                                }
16204                                ios.width(25);
16205                                internal(ios);
16206                                {
16207                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16208                                    std::string ex(str, iter.base());
16209                                    assert(ex == "0x********1.26580b488p+30");
16210                                    assert(ios.width() == 0);
16211                                }
16212                            }
16213                            ios.imbue(lg);
16214                            {
16215                                ios.width(0);
16216                                {
16217                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16218                                    std::string ex(str, iter.base());
16219                                    assert(ex == "0x1;26580b488p+30");
16220                                    assert(ios.width() == 0);
16221                                }
16222                                ios.width(25);
16223                                left(ios);
16224                                {
16225                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16226                                    std::string ex(str, iter.base());
16227                                    assert(ex == "0x1;26580b488p+30********");
16228                                    assert(ios.width() == 0);
16229                                }
16230                                ios.width(25);
16231                                right(ios);
16232                                {
16233                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16234                                    std::string ex(str, iter.base());
16235                                    assert(ex == "********0x1;26580b488p+30");
16236                                    assert(ios.width() == 0);
16237                                }
16238                                ios.width(25);
16239                                internal(ios);
16240                                {
16241                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16242                                    std::string ex(str, iter.base());
16243                                    assert(ex == "0x********1;26580b488p+30");
16244                                    assert(ios.width() == 0);
16245                                }
16246                            }
16247                        }
16248                    }
16249                    showpos(ios);
16250                    {
16251                        noshowpoint(ios);
16252                        {
16253                            ios.imbue(lc);
16254                            {
16255                                ios.width(0);
16256                                {
16257                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16258                                    std::string ex(str, iter.base());
16259                                    assert(ex == "+0x1.26580b488p+30");
16260                                    assert(ios.width() == 0);
16261                                }
16262                                ios.width(25);
16263                                left(ios);
16264                                {
16265                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16266                                    std::string ex(str, iter.base());
16267                                    assert(ex == "+0x1.26580b488p+30*******");
16268                                    assert(ios.width() == 0);
16269                                }
16270                                ios.width(25);
16271                                right(ios);
16272                                {
16273                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16274                                    std::string ex(str, iter.base());
16275                                    assert(ex == "*******+0x1.26580b488p+30");
16276                                    assert(ios.width() == 0);
16277                                }
16278                                ios.width(25);
16279                                internal(ios);
16280                                {
16281                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16282                                    std::string ex(str, iter.base());
16283                                    assert(ex == "+*******0x1.26580b488p+30");
16284                                    assert(ios.width() == 0);
16285                                }
16286                            }
16287                            ios.imbue(lg);
16288                            {
16289                                ios.width(0);
16290                                {
16291                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16292                                    std::string ex(str, iter.base());
16293                                    assert(ex == "+0x1;26580b488p+30");
16294                                    assert(ios.width() == 0);
16295                                }
16296                                ios.width(25);
16297                                left(ios);
16298                                {
16299                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16300                                    std::string ex(str, iter.base());
16301                                    assert(ex == "+0x1;26580b488p+30*******");
16302                                    assert(ios.width() == 0);
16303                                }
16304                                ios.width(25);
16305                                right(ios);
16306                                {
16307                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16308                                    std::string ex(str, iter.base());
16309                                    assert(ex == "*******+0x1;26580b488p+30");
16310                                    assert(ios.width() == 0);
16311                                }
16312                                ios.width(25);
16313                                internal(ios);
16314                                {
16315                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16316                                    std::string ex(str, iter.base());
16317                                    assert(ex == "+*******0x1;26580b488p+30");
16318                                    assert(ios.width() == 0);
16319                                }
16320                            }
16321                        }
16322                        showpoint(ios);
16323                        {
16324                            ios.imbue(lc);
16325                            {
16326                                ios.width(0);
16327                                {
16328                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16329                                    std::string ex(str, iter.base());
16330                                    assert(ex == "+0x1.26580b488p+30");
16331                                    assert(ios.width() == 0);
16332                                }
16333                                ios.width(25);
16334                                left(ios);
16335                                {
16336                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16337                                    std::string ex(str, iter.base());
16338                                    assert(ex == "+0x1.26580b488p+30*******");
16339                                    assert(ios.width() == 0);
16340                                }
16341                                ios.width(25);
16342                                right(ios);
16343                                {
16344                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16345                                    std::string ex(str, iter.base());
16346                                    assert(ex == "*******+0x1.26580b488p+30");
16347                                    assert(ios.width() == 0);
16348                                }
16349                                ios.width(25);
16350                                internal(ios);
16351                                {
16352                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16353                                    std::string ex(str, iter.base());
16354                                    assert(ex == "+*******0x1.26580b488p+30");
16355                                    assert(ios.width() == 0);
16356                                }
16357                            }
16358                            ios.imbue(lg);
16359                            {
16360                                ios.width(0);
16361                                {
16362                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16363                                    std::string ex(str, iter.base());
16364                                    assert(ex == "+0x1;26580b488p+30");
16365                                    assert(ios.width() == 0);
16366                                }
16367                                ios.width(25);
16368                                left(ios);
16369                                {
16370                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16371                                    std::string ex(str, iter.base());
16372                                    assert(ex == "+0x1;26580b488p+30*******");
16373                                    assert(ios.width() == 0);
16374                                }
16375                                ios.width(25);
16376                                right(ios);
16377                                {
16378                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16379                                    std::string ex(str, iter.base());
16380                                    assert(ex == "*******+0x1;26580b488p+30");
16381                                    assert(ios.width() == 0);
16382                                }
16383                                ios.width(25);
16384                                internal(ios);
16385                                {
16386                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16387                                    std::string ex(str, iter.base());
16388                                    assert(ex == "+*******0x1;26580b488p+30");
16389                                    assert(ios.width() == 0);
16390                                }
16391                            }
16392                        }
16393                    }
16394                }
16395                uppercase(ios);
16396                {
16397                    noshowpos(ios);
16398                    {
16399                        noshowpoint(ios);
16400                        {
16401                            ios.imbue(lc);
16402                            {
16403                                ios.width(0);
16404                                {
16405                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16406                                    std::string ex(str, iter.base());
16407                                    assert(ex == "0X1.26580B488P+30");
16408                                    assert(ios.width() == 0);
16409                                }
16410                                ios.width(25);
16411                                left(ios);
16412                                {
16413                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16414                                    std::string ex(str, iter.base());
16415                                    assert(ex == "0X1.26580B488P+30********");
16416                                    assert(ios.width() == 0);
16417                                }
16418                                ios.width(25);
16419                                right(ios);
16420                                {
16421                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16422                                    std::string ex(str, iter.base());
16423                                    assert(ex == "********0X1.26580B488P+30");
16424                                    assert(ios.width() == 0);
16425                                }
16426                                ios.width(25);
16427                                internal(ios);
16428                                {
16429                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16430                                    std::string ex(str, iter.base());
16431                                    assert(ex == "0X********1.26580B488P+30");
16432                                    assert(ios.width() == 0);
16433                                }
16434                            }
16435                            ios.imbue(lg);
16436                            {
16437                                ios.width(0);
16438                                {
16439                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16440                                    std::string ex(str, iter.base());
16441                                    assert(ex == "0X1;26580B488P+30");
16442                                    assert(ios.width() == 0);
16443                                }
16444                                ios.width(25);
16445                                left(ios);
16446                                {
16447                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16448                                    std::string ex(str, iter.base());
16449                                    assert(ex == "0X1;26580B488P+30********");
16450                                    assert(ios.width() == 0);
16451                                }
16452                                ios.width(25);
16453                                right(ios);
16454                                {
16455                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16456                                    std::string ex(str, iter.base());
16457                                    assert(ex == "********0X1;26580B488P+30");
16458                                    assert(ios.width() == 0);
16459                                }
16460                                ios.width(25);
16461                                internal(ios);
16462                                {
16463                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16464                                    std::string ex(str, iter.base());
16465                                    assert(ex == "0X********1;26580B488P+30");
16466                                    assert(ios.width() == 0);
16467                                }
16468                            }
16469                        }
16470                        showpoint(ios);
16471                        {
16472                            ios.imbue(lc);
16473                            {
16474                                ios.width(0);
16475                                {
16476                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16477                                    std::string ex(str, iter.base());
16478                                    assert(ex == "0X1.26580B488P+30");
16479                                    assert(ios.width() == 0);
16480                                }
16481                                ios.width(25);
16482                                left(ios);
16483                                {
16484                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16485                                    std::string ex(str, iter.base());
16486                                    assert(ex == "0X1.26580B488P+30********");
16487                                    assert(ios.width() == 0);
16488                                }
16489                                ios.width(25);
16490                                right(ios);
16491                                {
16492                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16493                                    std::string ex(str, iter.base());
16494                                    assert(ex == "********0X1.26580B488P+30");
16495                                    assert(ios.width() == 0);
16496                                }
16497                                ios.width(25);
16498                                internal(ios);
16499                                {
16500                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16501                                    std::string ex(str, iter.base());
16502                                    assert(ex == "0X********1.26580B488P+30");
16503                                    assert(ios.width() == 0);
16504                                }
16505                            }
16506                            ios.imbue(lg);
16507                            {
16508                                ios.width(0);
16509                                {
16510                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16511                                    std::string ex(str, iter.base());
16512                                    assert(ex == "0X1;26580B488P+30");
16513                                    assert(ios.width() == 0);
16514                                }
16515                                ios.width(25);
16516                                left(ios);
16517                                {
16518                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16519                                    std::string ex(str, iter.base());
16520                                    assert(ex == "0X1;26580B488P+30********");
16521                                    assert(ios.width() == 0);
16522                                }
16523                                ios.width(25);
16524                                right(ios);
16525                                {
16526                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16527                                    std::string ex(str, iter.base());
16528                                    assert(ex == "********0X1;26580B488P+30");
16529                                    assert(ios.width() == 0);
16530                                }
16531                                ios.width(25);
16532                                internal(ios);
16533                                {
16534                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16535                                    std::string ex(str, iter.base());
16536                                    assert(ex == "0X********1;26580B488P+30");
16537                                    assert(ios.width() == 0);
16538                                }
16539                            }
16540                        }
16541                    }
16542                    showpos(ios);
16543                    {
16544                        noshowpoint(ios);
16545                        {
16546                            ios.imbue(lc);
16547                            {
16548                                ios.width(0);
16549                                {
16550                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16551                                    std::string ex(str, iter.base());
16552                                    assert(ex == "+0X1.26580B488P+30");
16553                                    assert(ios.width() == 0);
16554                                }
16555                                ios.width(25);
16556                                left(ios);
16557                                {
16558                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16559                                    std::string ex(str, iter.base());
16560                                    assert(ex == "+0X1.26580B488P+30*******");
16561                                    assert(ios.width() == 0);
16562                                }
16563                                ios.width(25);
16564                                right(ios);
16565                                {
16566                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16567                                    std::string ex(str, iter.base());
16568                                    assert(ex == "*******+0X1.26580B488P+30");
16569                                    assert(ios.width() == 0);
16570                                }
16571                                ios.width(25);
16572                                internal(ios);
16573                                {
16574                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16575                                    std::string ex(str, iter.base());
16576                                    assert(ex == "+*******0X1.26580B488P+30");
16577                                    assert(ios.width() == 0);
16578                                }
16579                            }
16580                            ios.imbue(lg);
16581                            {
16582                                ios.width(0);
16583                                {
16584                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16585                                    std::string ex(str, iter.base());
16586                                    assert(ex == "+0X1;26580B488P+30");
16587                                    assert(ios.width() == 0);
16588                                }
16589                                ios.width(25);
16590                                left(ios);
16591                                {
16592                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16593                                    std::string ex(str, iter.base());
16594                                    assert(ex == "+0X1;26580B488P+30*******");
16595                                    assert(ios.width() == 0);
16596                                }
16597                                ios.width(25);
16598                                right(ios);
16599                                {
16600                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16601                                    std::string ex(str, iter.base());
16602                                    assert(ex == "*******+0X1;26580B488P+30");
16603                                    assert(ios.width() == 0);
16604                                }
16605                                ios.width(25);
16606                                internal(ios);
16607                                {
16608                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16609                                    std::string ex(str, iter.base());
16610                                    assert(ex == "+*******0X1;26580B488P+30");
16611                                    assert(ios.width() == 0);
16612                                }
16613                            }
16614                        }
16615                        showpoint(ios);
16616                        {
16617                            ios.imbue(lc);
16618                            {
16619                                ios.width(0);
16620                                {
16621                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16622                                    std::string ex(str, iter.base());
16623                                    assert(ex == "+0X1.26580B488P+30");
16624                                    assert(ios.width() == 0);
16625                                }
16626                                ios.width(25);
16627                                left(ios);
16628                                {
16629                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16630                                    std::string ex(str, iter.base());
16631                                    assert(ex == "+0X1.26580B488P+30*******");
16632                                    assert(ios.width() == 0);
16633                                }
16634                                ios.width(25);
16635                                right(ios);
16636                                {
16637                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16638                                    std::string ex(str, iter.base());
16639                                    assert(ex == "*******+0X1.26580B488P+30");
16640                                    assert(ios.width() == 0);
16641                                }
16642                                ios.width(25);
16643                                internal(ios);
16644                                {
16645                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16646                                    std::string ex(str, iter.base());
16647                                    assert(ex == "+*******0X1.26580B488P+30");
16648                                    assert(ios.width() == 0);
16649                                }
16650                            }
16651                            ios.imbue(lg);
16652                            {
16653                                ios.width(0);
16654                                {
16655                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16656                                    std::string ex(str, iter.base());
16657                                    assert(ex == "+0X1;26580B488P+30");
16658                                    assert(ios.width() == 0);
16659                                }
16660                                ios.width(25);
16661                                left(ios);
16662                                {
16663                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16664                                    std::string ex(str, iter.base());
16665                                    assert(ex == "+0X1;26580B488P+30*******");
16666                                    assert(ios.width() == 0);
16667                                }
16668                                ios.width(25);
16669                                right(ios);
16670                                {
16671                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16672                                    std::string ex(str, iter.base());
16673                                    assert(ex == "*******+0X1;26580B488P+30");
16674                                    assert(ios.width() == 0);
16675                                }
16676                                ios.width(25);
16677                                internal(ios);
16678                                {
16679                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16680                                    std::string ex(str, iter.base());
16681                                    assert(ex == "+*******0X1;26580B488P+30");
16682                                    assert(ios.width() == 0);
16683                                }
16684                            }
16685                        }
16686                    }
16687                }
16688            }
16689            ios.precision(1);
16690            {
16691                nouppercase(ios);
16692                {
16693                    noshowpos(ios);
16694                    {
16695                        noshowpoint(ios);
16696                        {
16697                            ios.imbue(lc);
16698                            {
16699                                ios.width(0);
16700                                {
16701                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16702                                    std::string ex(str, iter.base());
16703                                    assert(ex == "0x1.26580b488p+30");
16704                                    assert(ios.width() == 0);
16705                                }
16706                                ios.width(25);
16707                                left(ios);
16708                                {
16709                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16710                                    std::string ex(str, iter.base());
16711                                    assert(ex == "0x1.26580b488p+30********");
16712                                    assert(ios.width() == 0);
16713                                }
16714                                ios.width(25);
16715                                right(ios);
16716                                {
16717                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16718                                    std::string ex(str, iter.base());
16719                                    assert(ex == "********0x1.26580b488p+30");
16720                                    assert(ios.width() == 0);
16721                                }
16722                                ios.width(25);
16723                                internal(ios);
16724                                {
16725                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16726                                    std::string ex(str, iter.base());
16727                                    assert(ex == "0x********1.26580b488p+30");
16728                                    assert(ios.width() == 0);
16729                                }
16730                            }
16731                            ios.imbue(lg);
16732                            {
16733                                ios.width(0);
16734                                {
16735                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16736                                    std::string ex(str, iter.base());
16737                                    assert(ex == "0x1;26580b488p+30");
16738                                    assert(ios.width() == 0);
16739                                }
16740                                ios.width(25);
16741                                left(ios);
16742                                {
16743                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16744                                    std::string ex(str, iter.base());
16745                                    assert(ex == "0x1;26580b488p+30********");
16746                                    assert(ios.width() == 0);
16747                                }
16748                                ios.width(25);
16749                                right(ios);
16750                                {
16751                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16752                                    std::string ex(str, iter.base());
16753                                    assert(ex == "********0x1;26580b488p+30");
16754                                    assert(ios.width() == 0);
16755                                }
16756                                ios.width(25);
16757                                internal(ios);
16758                                {
16759                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16760                                    std::string ex(str, iter.base());
16761                                    assert(ex == "0x********1;26580b488p+30");
16762                                    assert(ios.width() == 0);
16763                                }
16764                            }
16765                        }
16766                        showpoint(ios);
16767                        {
16768                            ios.imbue(lc);
16769                            {
16770                                ios.width(0);
16771                                {
16772                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16773                                    std::string ex(str, iter.base());
16774                                    assert(ex == "0x1.26580b488p+30");
16775                                    assert(ios.width() == 0);
16776                                }
16777                                ios.width(25);
16778                                left(ios);
16779                                {
16780                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16781                                    std::string ex(str, iter.base());
16782                                    assert(ex == "0x1.26580b488p+30********");
16783                                    assert(ios.width() == 0);
16784                                }
16785                                ios.width(25);
16786                                right(ios);
16787                                {
16788                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16789                                    std::string ex(str, iter.base());
16790                                    assert(ex == "********0x1.26580b488p+30");
16791                                    assert(ios.width() == 0);
16792                                }
16793                                ios.width(25);
16794                                internal(ios);
16795                                {
16796                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16797                                    std::string ex(str, iter.base());
16798                                    assert(ex == "0x********1.26580b488p+30");
16799                                    assert(ios.width() == 0);
16800                                }
16801                            }
16802                            ios.imbue(lg);
16803                            {
16804                                ios.width(0);
16805                                {
16806                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16807                                    std::string ex(str, iter.base());
16808                                    assert(ex == "0x1;26580b488p+30");
16809                                    assert(ios.width() == 0);
16810                                }
16811                                ios.width(25);
16812                                left(ios);
16813                                {
16814                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16815                                    std::string ex(str, iter.base());
16816                                    assert(ex == "0x1;26580b488p+30********");
16817                                    assert(ios.width() == 0);
16818                                }
16819                                ios.width(25);
16820                                right(ios);
16821                                {
16822                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16823                                    std::string ex(str, iter.base());
16824                                    assert(ex == "********0x1;26580b488p+30");
16825                                    assert(ios.width() == 0);
16826                                }
16827                                ios.width(25);
16828                                internal(ios);
16829                                {
16830                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16831                                    std::string ex(str, iter.base());
16832                                    assert(ex == "0x********1;26580b488p+30");
16833                                    assert(ios.width() == 0);
16834                                }
16835                            }
16836                        }
16837                    }
16838                    showpos(ios);
16839                    {
16840                        noshowpoint(ios);
16841                        {
16842                            ios.imbue(lc);
16843                            {
16844                                ios.width(0);
16845                                {
16846                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16847                                    std::string ex(str, iter.base());
16848                                    assert(ex == "+0x1.26580b488p+30");
16849                                    assert(ios.width() == 0);
16850                                }
16851                                ios.width(25);
16852                                left(ios);
16853                                {
16854                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16855                                    std::string ex(str, iter.base());
16856                                    assert(ex == "+0x1.26580b488p+30*******");
16857                                    assert(ios.width() == 0);
16858                                }
16859                                ios.width(25);
16860                                right(ios);
16861                                {
16862                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16863                                    std::string ex(str, iter.base());
16864                                    assert(ex == "*******+0x1.26580b488p+30");
16865                                    assert(ios.width() == 0);
16866                                }
16867                                ios.width(25);
16868                                internal(ios);
16869                                {
16870                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16871                                    std::string ex(str, iter.base());
16872                                    assert(ex == "+*******0x1.26580b488p+30");
16873                                    assert(ios.width() == 0);
16874                                }
16875                            }
16876                            ios.imbue(lg);
16877                            {
16878                                ios.width(0);
16879                                {
16880                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16881                                    std::string ex(str, iter.base());
16882                                    assert(ex == "+0x1;26580b488p+30");
16883                                    assert(ios.width() == 0);
16884                                }
16885                                ios.width(25);
16886                                left(ios);
16887                                {
16888                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16889                                    std::string ex(str, iter.base());
16890                                    assert(ex == "+0x1;26580b488p+30*******");
16891                                    assert(ios.width() == 0);
16892                                }
16893                                ios.width(25);
16894                                right(ios);
16895                                {
16896                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16897                                    std::string ex(str, iter.base());
16898                                    assert(ex == "*******+0x1;26580b488p+30");
16899                                    assert(ios.width() == 0);
16900                                }
16901                                ios.width(25);
16902                                internal(ios);
16903                                {
16904                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16905                                    std::string ex(str, iter.base());
16906                                    assert(ex == "+*******0x1;26580b488p+30");
16907                                    assert(ios.width() == 0);
16908                                }
16909                            }
16910                        }
16911                        showpoint(ios);
16912                        {
16913                            ios.imbue(lc);
16914                            {
16915                                ios.width(0);
16916                                {
16917                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16918                                    std::string ex(str, iter.base());
16919                                    assert(ex == "+0x1.26580b488p+30");
16920                                    assert(ios.width() == 0);
16921                                }
16922                                ios.width(25);
16923                                left(ios);
16924                                {
16925                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16926                                    std::string ex(str, iter.base());
16927                                    assert(ex == "+0x1.26580b488p+30*******");
16928                                    assert(ios.width() == 0);
16929                                }
16930                                ios.width(25);
16931                                right(ios);
16932                                {
16933                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16934                                    std::string ex(str, iter.base());
16935                                    assert(ex == "*******+0x1.26580b488p+30");
16936                                    assert(ios.width() == 0);
16937                                }
16938                                ios.width(25);
16939                                internal(ios);
16940                                {
16941                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16942                                    std::string ex(str, iter.base());
16943                                    assert(ex == "+*******0x1.26580b488p+30");
16944                                    assert(ios.width() == 0);
16945                                }
16946                            }
16947                            ios.imbue(lg);
16948                            {
16949                                ios.width(0);
16950                                {
16951                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16952                                    std::string ex(str, iter.base());
16953                                    assert(ex == "+0x1;26580b488p+30");
16954                                    assert(ios.width() == 0);
16955                                }
16956                                ios.width(25);
16957                                left(ios);
16958                                {
16959                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16960                                    std::string ex(str, iter.base());
16961                                    assert(ex == "+0x1;26580b488p+30*******");
16962                                    assert(ios.width() == 0);
16963                                }
16964                                ios.width(25);
16965                                right(ios);
16966                                {
16967                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16968                                    std::string ex(str, iter.base());
16969                                    assert(ex == "*******+0x1;26580b488p+30");
16970                                    assert(ios.width() == 0);
16971                                }
16972                                ios.width(25);
16973                                internal(ios);
16974                                {
16975                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16976                                    std::string ex(str, iter.base());
16977                                    assert(ex == "+*******0x1;26580b488p+30");
16978                                    assert(ios.width() == 0);
16979                                }
16980                            }
16981                        }
16982                    }
16983                }
16984                uppercase(ios);
16985                {
16986                    noshowpos(ios);
16987                    {
16988                        noshowpoint(ios);
16989                        {
16990                            ios.imbue(lc);
16991                            {
16992                                ios.width(0);
16993                                {
16994                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
16995                                    std::string ex(str, iter.base());
16996                                    assert(ex == "0X1.26580B488P+30");
16997                                    assert(ios.width() == 0);
16998                                }
16999                                ios.width(25);
17000                                left(ios);
17001                                {
17002                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17003                                    std::string ex(str, iter.base());
17004                                    assert(ex == "0X1.26580B488P+30********");
17005                                    assert(ios.width() == 0);
17006                                }
17007                                ios.width(25);
17008                                right(ios);
17009                                {
17010                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17011                                    std::string ex(str, iter.base());
17012                                    assert(ex == "********0X1.26580B488P+30");
17013                                    assert(ios.width() == 0);
17014                                }
17015                                ios.width(25);
17016                                internal(ios);
17017                                {
17018                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17019                                    std::string ex(str, iter.base());
17020                                    assert(ex == "0X********1.26580B488P+30");
17021                                    assert(ios.width() == 0);
17022                                }
17023                            }
17024                            ios.imbue(lg);
17025                            {
17026                                ios.width(0);
17027                                {
17028                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17029                                    std::string ex(str, iter.base());
17030                                    assert(ex == "0X1;26580B488P+30");
17031                                    assert(ios.width() == 0);
17032                                }
17033                                ios.width(25);
17034                                left(ios);
17035                                {
17036                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17037                                    std::string ex(str, iter.base());
17038                                    assert(ex == "0X1;26580B488P+30********");
17039                                    assert(ios.width() == 0);
17040                                }
17041                                ios.width(25);
17042                                right(ios);
17043                                {
17044                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17045                                    std::string ex(str, iter.base());
17046                                    assert(ex == "********0X1;26580B488P+30");
17047                                    assert(ios.width() == 0);
17048                                }
17049                                ios.width(25);
17050                                internal(ios);
17051                                {
17052                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17053                                    std::string ex(str, iter.base());
17054                                    assert(ex == "0X********1;26580B488P+30");
17055                                    assert(ios.width() == 0);
17056                                }
17057                            }
17058                        }
17059                        showpoint(ios);
17060                        {
17061                            ios.imbue(lc);
17062                            {
17063                                ios.width(0);
17064                                {
17065                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17066                                    std::string ex(str, iter.base());
17067                                    assert(ex == "0X1.26580B488P+30");
17068                                    assert(ios.width() == 0);
17069                                }
17070                                ios.width(25);
17071                                left(ios);
17072                                {
17073                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17074                                    std::string ex(str, iter.base());
17075                                    assert(ex == "0X1.26580B488P+30********");
17076                                    assert(ios.width() == 0);
17077                                }
17078                                ios.width(25);
17079                                right(ios);
17080                                {
17081                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17082                                    std::string ex(str, iter.base());
17083                                    assert(ex == "********0X1.26580B488P+30");
17084                                    assert(ios.width() == 0);
17085                                }
17086                                ios.width(25);
17087                                internal(ios);
17088                                {
17089                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17090                                    std::string ex(str, iter.base());
17091                                    assert(ex == "0X********1.26580B488P+30");
17092                                    assert(ios.width() == 0);
17093                                }
17094                            }
17095                            ios.imbue(lg);
17096                            {
17097                                ios.width(0);
17098                                {
17099                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17100                                    std::string ex(str, iter.base());
17101                                    assert(ex == "0X1;26580B488P+30");
17102                                    assert(ios.width() == 0);
17103                                }
17104                                ios.width(25);
17105                                left(ios);
17106                                {
17107                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17108                                    std::string ex(str, iter.base());
17109                                    assert(ex == "0X1;26580B488P+30********");
17110                                    assert(ios.width() == 0);
17111                                }
17112                                ios.width(25);
17113                                right(ios);
17114                                {
17115                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17116                                    std::string ex(str, iter.base());
17117                                    assert(ex == "********0X1;26580B488P+30");
17118                                    assert(ios.width() == 0);
17119                                }
17120                                ios.width(25);
17121                                internal(ios);
17122                                {
17123                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17124                                    std::string ex(str, iter.base());
17125                                    assert(ex == "0X********1;26580B488P+30");
17126                                    assert(ios.width() == 0);
17127                                }
17128                            }
17129                        }
17130                    }
17131                    showpos(ios);
17132                    {
17133                        noshowpoint(ios);
17134                        {
17135                            ios.imbue(lc);
17136                            {
17137                                ios.width(0);
17138                                {
17139                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17140                                    std::string ex(str, iter.base());
17141                                    assert(ex == "+0X1.26580B488P+30");
17142                                    assert(ios.width() == 0);
17143                                }
17144                                ios.width(25);
17145                                left(ios);
17146                                {
17147                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17148                                    std::string ex(str, iter.base());
17149                                    assert(ex == "+0X1.26580B488P+30*******");
17150                                    assert(ios.width() == 0);
17151                                }
17152                                ios.width(25);
17153                                right(ios);
17154                                {
17155                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17156                                    std::string ex(str, iter.base());
17157                                    assert(ex == "*******+0X1.26580B488P+30");
17158                                    assert(ios.width() == 0);
17159                                }
17160                                ios.width(25);
17161                                internal(ios);
17162                                {
17163                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17164                                    std::string ex(str, iter.base());
17165                                    assert(ex == "+*******0X1.26580B488P+30");
17166                                    assert(ios.width() == 0);
17167                                }
17168                            }
17169                            ios.imbue(lg);
17170                            {
17171                                ios.width(0);
17172                                {
17173                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17174                                    std::string ex(str, iter.base());
17175                                    assert(ex == "+0X1;26580B488P+30");
17176                                    assert(ios.width() == 0);
17177                                }
17178                                ios.width(25);
17179                                left(ios);
17180                                {
17181                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17182                                    std::string ex(str, iter.base());
17183                                    assert(ex == "+0X1;26580B488P+30*******");
17184                                    assert(ios.width() == 0);
17185                                }
17186                                ios.width(25);
17187                                right(ios);
17188                                {
17189                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17190                                    std::string ex(str, iter.base());
17191                                    assert(ex == "*******+0X1;26580B488P+30");
17192                                    assert(ios.width() == 0);
17193                                }
17194                                ios.width(25);
17195                                internal(ios);
17196                                {
17197                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17198                                    std::string ex(str, iter.base());
17199                                    assert(ex == "+*******0X1;26580B488P+30");
17200                                    assert(ios.width() == 0);
17201                                }
17202                            }
17203                        }
17204                        showpoint(ios);
17205                        {
17206                            ios.imbue(lc);
17207                            {
17208                                ios.width(0);
17209                                {
17210                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17211                                    std::string ex(str, iter.base());
17212                                    assert(ex == "+0X1.26580B488P+30");
17213                                    assert(ios.width() == 0);
17214                                }
17215                                ios.width(25);
17216                                left(ios);
17217                                {
17218                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17219                                    std::string ex(str, iter.base());
17220                                    assert(ex == "+0X1.26580B488P+30*******");
17221                                    assert(ios.width() == 0);
17222                                }
17223                                ios.width(25);
17224                                right(ios);
17225                                {
17226                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17227                                    std::string ex(str, iter.base());
17228                                    assert(ex == "*******+0X1.26580B488P+30");
17229                                    assert(ios.width() == 0);
17230                                }
17231                                ios.width(25);
17232                                internal(ios);
17233                                {
17234                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17235                                    std::string ex(str, iter.base());
17236                                    assert(ex == "+*******0X1.26580B488P+30");
17237                                    assert(ios.width() == 0);
17238                                }
17239                            }
17240                            ios.imbue(lg);
17241                            {
17242                                ios.width(0);
17243                                {
17244                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17245                                    std::string ex(str, iter.base());
17246                                    assert(ex == "+0X1;26580B488P+30");
17247                                    assert(ios.width() == 0);
17248                                }
17249                                ios.width(25);
17250                                left(ios);
17251                                {
17252                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17253                                    std::string ex(str, iter.base());
17254                                    assert(ex == "+0X1;26580B488P+30*******");
17255                                    assert(ios.width() == 0);
17256                                }
17257                                ios.width(25);
17258                                right(ios);
17259                                {
17260                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17261                                    std::string ex(str, iter.base());
17262                                    assert(ex == "*******+0X1;26580B488P+30");
17263                                    assert(ios.width() == 0);
17264                                }
17265                                ios.width(25);
17266                                internal(ios);
17267                                {
17268                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17269                                    std::string ex(str, iter.base());
17270                                    assert(ex == "+*******0X1;26580B488P+30");
17271                                    assert(ios.width() == 0);
17272                                }
17273                            }
17274                        }
17275                    }
17276                }
17277            }
17278            ios.precision(6);
17279            {
17280            }
17281            ios.precision(16);
17282            {
17283            }
17284            ios.precision(60);
17285            {
17286                nouppercase(ios);
17287                {
17288                    noshowpos(ios);
17289                    {
17290                        noshowpoint(ios);
17291                        {
17292                            ios.imbue(lc);
17293                            {
17294                                ios.width(0);
17295                                {
17296                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17297                                    std::string ex(str, iter.base());
17298                                    assert(ex == "0x1.26580b488p+30");
17299                                    assert(ios.width() == 0);
17300                                }
17301                                ios.width(25);
17302                                left(ios);
17303                                {
17304                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17305                                    std::string ex(str, iter.base());
17306                                    assert(ex == "0x1.26580b488p+30********");
17307                                    assert(ios.width() == 0);
17308                                }
17309                                ios.width(25);
17310                                right(ios);
17311                                {
17312                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17313                                    std::string ex(str, iter.base());
17314                                    assert(ex == "********0x1.26580b488p+30");
17315                                    assert(ios.width() == 0);
17316                                }
17317                                ios.width(25);
17318                                internal(ios);
17319                                {
17320                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17321                                    std::string ex(str, iter.base());
17322                                    assert(ex == "0x********1.26580b488p+30");
17323                                    assert(ios.width() == 0);
17324                                }
17325                            }
17326                            ios.imbue(lg);
17327                            {
17328                                ios.width(0);
17329                                {
17330                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17331                                    std::string ex(str, iter.base());
17332                                    assert(ex == "0x1;26580b488p+30");
17333                                    assert(ios.width() == 0);
17334                                }
17335                                ios.width(25);
17336                                left(ios);
17337                                {
17338                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17339                                    std::string ex(str, iter.base());
17340                                    assert(ex == "0x1;26580b488p+30********");
17341                                    assert(ios.width() == 0);
17342                                }
17343                                ios.width(25);
17344                                right(ios);
17345                                {
17346                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17347                                    std::string ex(str, iter.base());
17348                                    assert(ex == "********0x1;26580b488p+30");
17349                                    assert(ios.width() == 0);
17350                                }
17351                                ios.width(25);
17352                                internal(ios);
17353                                {
17354                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17355                                    std::string ex(str, iter.base());
17356                                    assert(ex == "0x********1;26580b488p+30");
17357                                    assert(ios.width() == 0);
17358                                }
17359                            }
17360                        }
17361                        showpoint(ios);
17362                        {
17363                            ios.imbue(lc);
17364                            {
17365                                ios.width(0);
17366                                {
17367                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17368                                    std::string ex(str, iter.base());
17369                                    assert(ex == "0x1.26580b488p+30");
17370                                    assert(ios.width() == 0);
17371                                }
17372                                ios.width(25);
17373                                left(ios);
17374                                {
17375                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17376                                    std::string ex(str, iter.base());
17377                                    assert(ex == "0x1.26580b488p+30********");
17378                                    assert(ios.width() == 0);
17379                                }
17380                                ios.width(25);
17381                                right(ios);
17382                                {
17383                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17384                                    std::string ex(str, iter.base());
17385                                    assert(ex == "********0x1.26580b488p+30");
17386                                    assert(ios.width() == 0);
17387                                }
17388                                ios.width(25);
17389                                internal(ios);
17390                                {
17391                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17392                                    std::string ex(str, iter.base());
17393                                    assert(ex == "0x********1.26580b488p+30");
17394                                    assert(ios.width() == 0);
17395                                }
17396                            }
17397                            ios.imbue(lg);
17398                            {
17399                                ios.width(0);
17400                                {
17401                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17402                                    std::string ex(str, iter.base());
17403                                    assert(ex == "0x1;26580b488p+30");
17404                                    assert(ios.width() == 0);
17405                                }
17406                                ios.width(25);
17407                                left(ios);
17408                                {
17409                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17410                                    std::string ex(str, iter.base());
17411                                    assert(ex == "0x1;26580b488p+30********");
17412                                    assert(ios.width() == 0);
17413                                }
17414                                ios.width(25);
17415                                right(ios);
17416                                {
17417                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17418                                    std::string ex(str, iter.base());
17419                                    assert(ex == "********0x1;26580b488p+30");
17420                                    assert(ios.width() == 0);
17421                                }
17422                                ios.width(25);
17423                                internal(ios);
17424                                {
17425                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17426                                    std::string ex(str, iter.base());
17427                                    assert(ex == "0x********1;26580b488p+30");
17428                                    assert(ios.width() == 0);
17429                                }
17430                            }
17431                        }
17432                    }
17433                    showpos(ios);
17434                    {
17435                        noshowpoint(ios);
17436                        {
17437                            ios.imbue(lc);
17438                            {
17439                                ios.width(0);
17440                                {
17441                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17442                                    std::string ex(str, iter.base());
17443                                    assert(ex == "+0x1.26580b488p+30");
17444                                    assert(ios.width() == 0);
17445                                }
17446                                ios.width(25);
17447                                left(ios);
17448                                {
17449                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17450                                    std::string ex(str, iter.base());
17451                                    assert(ex == "+0x1.26580b488p+30*******");
17452                                    assert(ios.width() == 0);
17453                                }
17454                                ios.width(25);
17455                                right(ios);
17456                                {
17457                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17458                                    std::string ex(str, iter.base());
17459                                    assert(ex == "*******+0x1.26580b488p+30");
17460                                    assert(ios.width() == 0);
17461                                }
17462                                ios.width(25);
17463                                internal(ios);
17464                                {
17465                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17466                                    std::string ex(str, iter.base());
17467                                    assert(ex == "+*******0x1.26580b488p+30");
17468                                    assert(ios.width() == 0);
17469                                }
17470                            }
17471                            ios.imbue(lg);
17472                            {
17473                                ios.width(0);
17474                                {
17475                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17476                                    std::string ex(str, iter.base());
17477                                    assert(ex == "+0x1;26580b488p+30");
17478                                    assert(ios.width() == 0);
17479                                }
17480                                ios.width(25);
17481                                left(ios);
17482                                {
17483                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17484                                    std::string ex(str, iter.base());
17485                                    assert(ex == "+0x1;26580b488p+30*******");
17486                                    assert(ios.width() == 0);
17487                                }
17488                                ios.width(25);
17489                                right(ios);
17490                                {
17491                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17492                                    std::string ex(str, iter.base());
17493                                    assert(ex == "*******+0x1;26580b488p+30");
17494                                    assert(ios.width() == 0);
17495                                }
17496                                ios.width(25);
17497                                internal(ios);
17498                                {
17499                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17500                                    std::string ex(str, iter.base());
17501                                    assert(ex == "+*******0x1;26580b488p+30");
17502                                    assert(ios.width() == 0);
17503                                }
17504                            }
17505                        }
17506                        showpoint(ios);
17507                        {
17508                            ios.imbue(lc);
17509                            {
17510                                ios.width(0);
17511                                {
17512                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17513                                    std::string ex(str, iter.base());
17514                                    assert(ex == "+0x1.26580b488p+30");
17515                                    assert(ios.width() == 0);
17516                                }
17517                                ios.width(25);
17518                                left(ios);
17519                                {
17520                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17521                                    std::string ex(str, iter.base());
17522                                    assert(ex == "+0x1.26580b488p+30*******");
17523                                    assert(ios.width() == 0);
17524                                }
17525                                ios.width(25);
17526                                right(ios);
17527                                {
17528                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17529                                    std::string ex(str, iter.base());
17530                                    assert(ex == "*******+0x1.26580b488p+30");
17531                                    assert(ios.width() == 0);
17532                                }
17533                                ios.width(25);
17534                                internal(ios);
17535                                {
17536                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17537                                    std::string ex(str, iter.base());
17538                                    assert(ex == "+*******0x1.26580b488p+30");
17539                                    assert(ios.width() == 0);
17540                                }
17541                            }
17542                            ios.imbue(lg);
17543                            {
17544                                ios.width(0);
17545                                {
17546                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17547                                    std::string ex(str, iter.base());
17548                                    assert(ex == "+0x1;26580b488p+30");
17549                                    assert(ios.width() == 0);
17550                                }
17551                                ios.width(25);
17552                                left(ios);
17553                                {
17554                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17555                                    std::string ex(str, iter.base());
17556                                    assert(ex == "+0x1;26580b488p+30*******");
17557                                    assert(ios.width() == 0);
17558                                }
17559                                ios.width(25);
17560                                right(ios);
17561                                {
17562                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17563                                    std::string ex(str, iter.base());
17564                                    assert(ex == "*******+0x1;26580b488p+30");
17565                                    assert(ios.width() == 0);
17566                                }
17567                                ios.width(25);
17568                                internal(ios);
17569                                {
17570                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17571                                    std::string ex(str, iter.base());
17572                                    assert(ex == "+*******0x1;26580b488p+30");
17573                                    assert(ios.width() == 0);
17574                                }
17575                            }
17576                        }
17577                    }
17578                }
17579                uppercase(ios);
17580                {
17581                    noshowpos(ios);
17582                    {
17583                        noshowpoint(ios);
17584                        {
17585                            ios.imbue(lc);
17586                            {
17587                                ios.width(0);
17588                                {
17589                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17590                                    std::string ex(str, iter.base());
17591                                    assert(ex == "0X1.26580B488P+30");
17592                                    assert(ios.width() == 0);
17593                                }
17594                                ios.width(25);
17595                                left(ios);
17596                                {
17597                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17598                                    std::string ex(str, iter.base());
17599                                    assert(ex == "0X1.26580B488P+30********");
17600                                    assert(ios.width() == 0);
17601                                }
17602                                ios.width(25);
17603                                right(ios);
17604                                {
17605                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17606                                    std::string ex(str, iter.base());
17607                                    assert(ex == "********0X1.26580B488P+30");
17608                                    assert(ios.width() == 0);
17609                                }
17610                                ios.width(25);
17611                                internal(ios);
17612                                {
17613                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17614                                    std::string ex(str, iter.base());
17615                                    assert(ex == "0X********1.26580B488P+30");
17616                                    assert(ios.width() == 0);
17617                                }
17618                            }
17619                            ios.imbue(lg);
17620                            {
17621                                ios.width(0);
17622                                {
17623                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17624                                    std::string ex(str, iter.base());
17625                                    assert(ex == "0X1;26580B488P+30");
17626                                    assert(ios.width() == 0);
17627                                }
17628                                ios.width(25);
17629                                left(ios);
17630                                {
17631                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17632                                    std::string ex(str, iter.base());
17633                                    assert(ex == "0X1;26580B488P+30********");
17634                                    assert(ios.width() == 0);
17635                                }
17636                                ios.width(25);
17637                                right(ios);
17638                                {
17639                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17640                                    std::string ex(str, iter.base());
17641                                    assert(ex == "********0X1;26580B488P+30");
17642                                    assert(ios.width() == 0);
17643                                }
17644                                ios.width(25);
17645                                internal(ios);
17646                                {
17647                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17648                                    std::string ex(str, iter.base());
17649                                    assert(ex == "0X********1;26580B488P+30");
17650                                    assert(ios.width() == 0);
17651                                }
17652                            }
17653                        }
17654                        showpoint(ios);
17655                        {
17656                            ios.imbue(lc);
17657                            {
17658                                ios.width(0);
17659                                {
17660                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17661                                    std::string ex(str, iter.base());
17662                                    assert(ex == "0X1.26580B488P+30");
17663                                    assert(ios.width() == 0);
17664                                }
17665                                ios.width(25);
17666                                left(ios);
17667                                {
17668                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17669                                    std::string ex(str, iter.base());
17670                                    assert(ex == "0X1.26580B488P+30********");
17671                                    assert(ios.width() == 0);
17672                                }
17673                                ios.width(25);
17674                                right(ios);
17675                                {
17676                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17677                                    std::string ex(str, iter.base());
17678                                    assert(ex == "********0X1.26580B488P+30");
17679                                    assert(ios.width() == 0);
17680                                }
17681                                ios.width(25);
17682                                internal(ios);
17683                                {
17684                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17685                                    std::string ex(str, iter.base());
17686                                    assert(ex == "0X********1.26580B488P+30");
17687                                    assert(ios.width() == 0);
17688                                }
17689                            }
17690                            ios.imbue(lg);
17691                            {
17692                                ios.width(0);
17693                                {
17694                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17695                                    std::string ex(str, iter.base());
17696                                    assert(ex == "0X1;26580B488P+30");
17697                                    assert(ios.width() == 0);
17698                                }
17699                                ios.width(25);
17700                                left(ios);
17701                                {
17702                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17703                                    std::string ex(str, iter.base());
17704                                    assert(ex == "0X1;26580B488P+30********");
17705                                    assert(ios.width() == 0);
17706                                }
17707                                ios.width(25);
17708                                right(ios);
17709                                {
17710                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17711                                    std::string ex(str, iter.base());
17712                                    assert(ex == "********0X1;26580B488P+30");
17713                                    assert(ios.width() == 0);
17714                                }
17715                                ios.width(25);
17716                                internal(ios);
17717                                {
17718                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17719                                    std::string ex(str, iter.base());
17720                                    assert(ex == "0X********1;26580B488P+30");
17721                                    assert(ios.width() == 0);
17722                                }
17723                            }
17724                        }
17725                    }
17726                    showpos(ios);
17727                    {
17728                        noshowpoint(ios);
17729                        {
17730                            ios.imbue(lc);
17731                            {
17732                                ios.width(0);
17733                                {
17734                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17735                                    std::string ex(str, iter.base());
17736                                    assert(ex == "+0X1.26580B488P+30");
17737                                    assert(ios.width() == 0);
17738                                }
17739                                ios.width(25);
17740                                left(ios);
17741                                {
17742                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17743                                    std::string ex(str, iter.base());
17744                                    assert(ex == "+0X1.26580B488P+30*******");
17745                                    assert(ios.width() == 0);
17746                                }
17747                                ios.width(25);
17748                                right(ios);
17749                                {
17750                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17751                                    std::string ex(str, iter.base());
17752                                    assert(ex == "*******+0X1.26580B488P+30");
17753                                    assert(ios.width() == 0);
17754                                }
17755                                ios.width(25);
17756                                internal(ios);
17757                                {
17758                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17759                                    std::string ex(str, iter.base());
17760                                    assert(ex == "+*******0X1.26580B488P+30");
17761                                    assert(ios.width() == 0);
17762                                }
17763                            }
17764                            ios.imbue(lg);
17765                            {
17766                                ios.width(0);
17767                                {
17768                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17769                                    std::string ex(str, iter.base());
17770                                    assert(ex == "+0X1;26580B488P+30");
17771                                    assert(ios.width() == 0);
17772                                }
17773                                ios.width(25);
17774                                left(ios);
17775                                {
17776                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17777                                    std::string ex(str, iter.base());
17778                                    assert(ex == "+0X1;26580B488P+30*******");
17779                                    assert(ios.width() == 0);
17780                                }
17781                                ios.width(25);
17782                                right(ios);
17783                                {
17784                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17785                                    std::string ex(str, iter.base());
17786                                    assert(ex == "*******+0X1;26580B488P+30");
17787                                    assert(ios.width() == 0);
17788                                }
17789                                ios.width(25);
17790                                internal(ios);
17791                                {
17792                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17793                                    std::string ex(str, iter.base());
17794                                    assert(ex == "+*******0X1;26580B488P+30");
17795                                    assert(ios.width() == 0);
17796                                }
17797                            }
17798                        }
17799                        showpoint(ios);
17800                        {
17801                            ios.imbue(lc);
17802                            {
17803                                ios.width(0);
17804                                {
17805                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17806                                    std::string ex(str, iter.base());
17807                                    assert(ex == "+0X1.26580B488P+30");
17808                                    assert(ios.width() == 0);
17809                                }
17810                                ios.width(25);
17811                                left(ios);
17812                                {
17813                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17814                                    std::string ex(str, iter.base());
17815                                    assert(ex == "+0X1.26580B488P+30*******");
17816                                    assert(ios.width() == 0);
17817                                }
17818                                ios.width(25);
17819                                right(ios);
17820                                {
17821                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17822                                    std::string ex(str, iter.base());
17823                                    assert(ex == "*******+0X1.26580B488P+30");
17824                                    assert(ios.width() == 0);
17825                                }
17826                                ios.width(25);
17827                                internal(ios);
17828                                {
17829                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17830                                    std::string ex(str, iter.base());
17831                                    assert(ex == "+*******0X1.26580B488P+30");
17832                                    assert(ios.width() == 0);
17833                                }
17834                            }
17835                            ios.imbue(lg);
17836                            {
17837                                ios.width(0);
17838                                {
17839                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17840                                    std::string ex(str, iter.base());
17841                                    assert(ex == "+0X1;26580B488P+30");
17842                                    assert(ios.width() == 0);
17843                                }
17844                                ios.width(25);
17845                                left(ios);
17846                                {
17847                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17848                                    std::string ex(str, iter.base());
17849                                    assert(ex == "+0X1;26580B488P+30*******");
17850                                    assert(ios.width() == 0);
17851                                }
17852                                ios.width(25);
17853                                right(ios);
17854                                {
17855                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17856                                    std::string ex(str, iter.base());
17857                                    assert(ex == "*******+0X1;26580B488P+30");
17858                                    assert(ios.width() == 0);
17859                                }
17860                                ios.width(25);
17861                                internal(ios);
17862                                {
17863                                    iter = f.put(output_iterator<char*>(str), ios, '*', v);
17864                                    std::string ex(str, iter.base());
17865                                    assert(ex == "+*******0X1;26580B488P+30");
17866                                    assert(ios.width() == 0);
17867                                }
17868                            }
17869                        }
17870                    }
17871                }
17872            }
17873        }
17874    }
17875}
17876
17877int main()
17878{
17879    test1();
17880    test2();
17881    test3();
17882    test4();
17883    test5();
17884    test6();
17885    test7();
17886    test8();
17887}
17888